Uso de bases de datos de SQL Server con la extensión mysql_fdw
Puede utilizar la extensión de PostgreSQL tds_fdw
para acceder a bases de datos compatibles con el protocolo de flujo de datos tabular (TDS), como bases de datos Sybase y Microsoft SQL Server. Este contenedor de datos externo le permite conectarse desde su clúster de bases de datos Aurora PostgreSQL a bases de datos que utilizan el protocolo TDS, incluido Amazon RDS for Microsoft SQL Server. Para obtener más información, consulte la documentación sobre tds-fdw/tds_fdw
La extensión tds_fdw
es compatible con las versiones 13.6 y posteriores de Aurora PostgreSQL.
Configuración de la base de datos de Aurora PostgreSQL para utilizar la extensión mysql_fdw
En los procedimientos que siguen encontrará un ejemplo de configuración y uso de tds_fdw
con un clúster de bases de datos Aurora PostgreSQL. Antes de poder conectarse a una base de datos SQL Server mediante tds_fdw
, tiene que obtener los siguientes detalles de la instancia:
Nombre de host o del punto de conexión. Para instancias de RDS for MySQL encontrará los puntos de conexión con la consola. Elija la pestaña Conectividad y seguridad y busque en la sección “Punto de enlace y puerto”.
Número de puerto. El puerto 1433 es el predeterminado para Microsoft SQL Server.
Nombre de la base de datos. El identificador de la base de datos.
También deberá proporcionar acceso en el grupo de seguridad o en la lista de control de acceso (ACL) al puerto MySQL, 1433. Tanto como la instancia de base de datos RDS for MySQL Server necesitan poder acceder al puerto 1433. Si el acceso no está configurado correctamente, cuando intente consultar Microsoft SQL Server aparecerá el siguiente mensaje de error:
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 para conectarse a una base de datos de SQL Server
Conéctese a su la instancia principal del clúster de bases de datos de Aurora PostgreSQL con una cuenta con rol
rds_superuser
:psql --host=
your-cluster-name-instance-1
.aws-region
.rds.amazonaws.com --port=5432 --username=test –-passwordInstale la extensión
tds_fdw
.test=>
CREATE EXTENSION tds_fdw;
CREATE EXTENSION
Después de instalar la extensión en su clúster de bases de datos Aurora PostgreSQL , configure el servidor externo.
Para crear el servidor externo
Realice estas tareas en el clúster de bases de datos Aurora PostgreSQL con una cuenta que con privilegios rds_superuser
.
Cree un servidor externo en el clúster de bases de datos Aurora 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 acceder a datos no que sean ASCII en el lado de SQLServer, cree un enlace de servidor con la opción character_set en el clúster de base de datos de Aurora 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
Conceda permisos a un usuario que no tenga los privilegios del rol
rds_superuser
, por ejemplouser1
:test=>
GRANT USAGE ON FOREIGN SERVER
sqlserverdb
TOuser1
;Conéctese como user1 y, a continuación, cree una asignación para el usuario de SQL Server:
test=>
CREATE USER MAPPING FOR user1 SERVER
sqlserverdb
OPTIONS (username 'sqlserveruser
', password 'password
');CREATE USER MAPPING
Cree una tabla externa vinculada a una tabla de SQL Server.
test=>
CREATE FOREIGN TABLE mytab (a int) SERVER
sqlserverdb
OPTIONS (table 'MYTABLE
');CREATE FOREIGN TABLE
Consulte la tabla externa:
test=>
SELECT * FROM mytab;
a --- 1 (1 row)
Uso de cifrado en tránsito para la conexión
La conexión de Aurora PostgreSQLa SQL Server utiliza cifrado en tránsito (TLS/SSL) según la configuración de la base de datos de SQL Server. Si SQL Server no está configurado para el cifrado, el RDS para el cliente PostgreSQL que realiza la solicitud a la base de datos de SQL Server vuelve a no ir cifrado.
Puede aplicar el cifrado para la conexión a RDS para instancias de base de datos de SQL Server configurando el parámetro rds.force_ssl
. Para saber cómo, consulte Requerir que las conexiones a la instancia de base de datos usen SSL. Para obtener más información sobre la configuración de SSL/TLS para RDS for SQL Server, consulte Uso de SSL con una instancia de base de datos de Microsoft SQL Server.