Interazione con i database MySQL utilizzando l'estensione mysql_fdw - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Interazione con i database MySQL utilizzando l'estensione mysql_fdw

È possibile utilizzare l'estensione tds_fdw per PostgreSQL per accedere ai database che supportano il protocollo TDS (Tabular Data Stream), ad esempio i database Sybase e Microsoft SQL Server. Questo wrapper di dati esterni consente di connettersi dal proprio cluster di database Aurora PostgreSQL ai database che utilizzano il protocollo TDS, incluso Amazon RDS for Microsoft SQL Server. Per ulteriori informazioni, consultare la documentazione di tds-fdw/tds_fdw su GitHub.

L'estensione tds_fdw è supportata su Amazon Aurora PostgreSQL versioni 13.6 e successive.

Configurazione del database Aurora PostgreSQL per l'utilizzo dell'estensione tds_fdw

Nelle procedure seguenti, è possibile trovare un esempio di configurazione e utilizzo di tds_fdw con un cluster di database Aurora PostgreSQL. Prima di potersi connettere a un database di SQL Server utilizzando tds_fdw è necessario disporre delle seguenti informazioni sull'istanza:

  • Nome host o endpoint. Per trovare l'endpoint di un'istanza database RDS for SQL Server è possibile utilizzare la console. Scegliere la scheda Connectivity & security (Connettività e sicurezza) e cercare nella sezione Endpoint and port (Endpoint e porta).

  • Numero della porta. Il numero di porta predefinito per Microsoft SQL Server è 1433.

  • Nome del database. L'identificatore del database.

È inoltre necessario fornire l'accesso al gruppo di sicurezza o alla lista di controllo degli accessi (ACL) per la porta SQL Server 1433. Sia il cluster di database Aurora PostegreSQL che l'istanza database RDS for MySQL Server necessitano dell'accesso alla porta 1433. Se l'accesso non è configurato correttamente, quando si tenta di eseguire una query su Microsoft SQL Server viene visualizzato il seguente messaggio di errore:

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
Per utilizzare tds_fdw per connettersi a un database di SQL Server
  1. Collegarsi all'istanza principale del cluster di database Aurora PostgreSQL utilizzando un account che dispone del ruolo rds_superuser:

    psql --host=your-cluster-name-instance-1.aws-region.rds.amazonaws.com --port=5432 --username=test –-password
  2. Installare l'estensione tds_fdw:

    test=> CREATE EXTENSION tds_fdw; CREATE EXTENSION

Dopo che l'estensione è stata installata sul cluster di database Aurora PostgreSQL , è necessario configurare il server esterno.

Per creare il server esterno

Eseguire queste attività sul cluster di database Aurora PostgreSQL utilizzando un account che dispone dei privilegi rds_superuser.

  1. Creazione di un server esterno nel cluster di database 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

    Per accedere ai dati non ASCII sul lato SQLServer, crea un collegamento server con l'opzione character_set nel cluster database 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. Concedere le autorizzazioni a un utente che non dispone del ruolo rds_superuser, ad esempio user1:

    test=> GRANT USAGE ON FOREIGN SERVER sqlserverdb TO user1;
  3. Collegarsi come user1 e quindi creare una mappatura per l'utente SQL Server:

    test=> CREATE USER MAPPING FOR user1 SERVER sqlserverdb OPTIONS (username 'sqlserveruser', password 'password'); CREATE USER MAPPING
  4. Creare una tabella esterna collegata a una tabella SQL Server:

    test=> CREATE FOREIGN TABLE mytab (a int) SERVER sqlserverdb OPTIONS (table 'MYTABLE'); CREATE FOREIGN TABLE
  5. Eseguire una query sulla tabella esterna:

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

Utilizzo della crittografia in transito per la connessione

La connessione da Aurora PostgreSQL verso SQL Server utilizza la crittografia in transito (TLS/SSL) in base alla configurazione del database SQL Server. Se SQL Server non è configurato per la crittografia, il client RDS per PostgreSQL che effettua la richiesta al database di SQL Server torna a comunicare in modalità non crittografata.

È possibile imporre l'utilizzo della crittografia per la connessione alle istanze database RDS for SQL Server impostando il parametro rds.force_ssl. Per scoprire come fare, consultare Imposizione dell'utilizzo di SSL per le connessioni all'istanza database. Per ulteriori informazioni sulla configurazione di SSL/TLS per RDS for SQL Server, consultare Utilizzo di SSL con un'istanza database Microsoft SQL Server.