Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Trabalhar com bancos de dados do SQL Server usando a extensão tds_fdw

Modo de foco
Trabalhar com bancos de dados do SQL Server usando a extensão tds_fdw - Amazon Relational Database Service

Você pode usar a extensão tds_fdw do PostgreSQL para acessar bancos de dados compatíveis com o protocolo de fluxo de dados tabular (TDS), como bancos de dados do Sybase e do Microsoft SQL Server. Esse invólucro de dados externos permite que você se conecte pela instância de banco de dados do RDS for PostgreSQL a bancos de dados que usam o protocolo TDS, incluindo o Amazon RDS for Microsoft SQL Server. Para obter mais informações, consulte a documentação do tds-fdw/tds_fdw no GitHub.

A extensão tds_fdw é compatível com o Amazon RDS for PostgreSQL versões 14.2, 13.6 e posteriores.

Configurar o banco de dados do RDS for PostgreSQL para usar a extensão tds_fdw

Nos procedimentos a seguir, você pode encontrar um exemplo de configuração e uso de tds_fdw com uma instância de banco de dados do RDS for PostgreSQL. Antes de se conectar a um banco de dados do SQL Server usando tds_fdw, é necessário obter os seguintes detalhes da instância:

  • Nome de host ou endpoint. Para uma instância de banco de dados do RDS for SQL Server, você pode encontrar o endpoint usando o console. Escolha a guia “Connectivity & security” (Conectividade e segurança) e procure na seção “Endpoint and port” (Endpoint e porta).

  • Número da porta. O número da porta padrão para o Microsoft SQL Server é 1433.

  • O nome do banco de dados. O identificador do banco de dados.

Você também precisa fornecer acesso no grupo de segurança ou na lista de controle de acesso (ACL) para a porta 1433 do SQL Server. Tanto a instância de banco de dados do RDS for PostgreSQL como a instância de banco de dados do RDS for SQL Server precisam de acesso à porta 1433. Se o acesso não estiver configurado corretamente, ao tentar consultar o Microsoft SQL Server, será exibida a seguinte mensagem de erro:

ERROR: DB-Library error: DB #: 20009, DB Msg: Unable to connect: Adaptive Server is unavailable or does not exist (mssql2019.aws-region.rds.amazonaws.com), OS #: 0, OS Msg: Success, Level: 9
Para usar tds_fdw a fim de se conectar a um banco de dados do SQL Server
  1. Conecte-se à instância de banco de dados do PostgreSQL usando uma conta que tenha a função rds_superuser:

    psql --host=your-DB-instance.aws-region.rds.amazonaws.com --port=5432 --username=test –-password
  2. Instale a extensão tds_fdw:

    test=> CREATE EXTENSION tds_fdw; CREATE EXTENSION

Depois que a extensão for instalada na instância de banco de dados do RDS for PostgreSQL, configure o servidor externo.

Para criar o servidor externo

Execute essas tarefas na instância de banco de dados do RDS for PostgreSQL usando uma conta com privilégios rds_superuser.

  1. Crie um servidor externo na instância de banco de dados do RDS para PostgreSQL:

    test=> CREATE SERVER sqlserverdb FOREIGN DATA WRAPPER tds_fdw OPTIONS (servername 'mssql2019.aws-region.rds.amazonaws.com', port '1433', database 'tds_fdw_testing'); CREATE SERVER

    Para acessar dados não ASCII do lado do SQLServer, crie um link de servidor com a opção character_set na instância de banco de dados do RDS para PostgreSQL:

    test=> CREATE SERVER sqlserverdb FOREIGN DATA WRAPPER tds_fdw OPTIONS (servername 'mssql2019.aws-region.rds.amazonaws.com', port '1433', database 'tds_fdw_testing', character_set 'UTF-8'); CREATE SERVER
  2. Conceda uso a um usuário que não tenha permissões da função rds_superuser; por exemplo, user1:

    test=> GRANT USAGE ON FOREIGN SERVER sqlserverdb TO user1;
  3. Conecte-se como user1 e, em seguida, crie um mapeamento para um usuário do SQL Server:

    test=> CREATE USER MAPPING FOR user1 SERVER sqlserverdb OPTIONS (username 'sqlserveruser', password 'password'); CREATE USER MAPPING
  4. Crie uma tabela externa vinculada a uma tabela do SQL Server:

    test=> CREATE FOREIGN TABLE mytab (a int) SERVER sqlserverdb OPTIONS (table 'MYTABLE'); CREATE FOREIGN TABLE
  5. Consulte a tabela externa:

    test=> SELECT * FROM mytab; a --- 1 (1 row)

Usar criptografia em trânsito para a conexão

A conexão do RDS for PostgreSQL com o SQL Server usa criptografia em trânsito (TLS/SSL), dependendo da configuração do banco de dados do SQL Server. Se o SQL Server não estiver configurado para criptografia, o cliente do RDS for PostgreSQL que faz a solicitação ao banco de dados do SQL Server retornará ao estado de não criptografado.

Você pode aplicar a criptografia para a conexão com instâncias de banco de dados do RDS for SQL Server definindo o parâmetro rds.force_ssl. Para saber como, consulte Forçar conexões com a instância de banco de dados para usar SSL. Para obter mais informações sobre a configuração de SSL/TLS para o RDS for SQL Server, consulte Usar SSL com uma instância de banco de dados do Microsoft SQL Server.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.