Uso de bases de datos de SQL Server con la extensión mysql_fdw - Amazon Aurora

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 en GitHub.

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
  1. 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 –-password
  2. Instale 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.

  1. 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
  2. Conceda permisos a un usuario que no tenga los privilegios del rol rds_superuser, por ejemplo user1:

    test=> GRANT USAGE ON FOREIGN SERVER sqlserverdb TO user1;
  3. 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
  4. 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
  5. 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.