Lavorare con i miei SQL database utilizzando l'estensione mysql_fdw - Amazon Relational Database Service

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à.

Lavorare con i miei SQL database utilizzando l'estensione mysql_fdw

Per accedere a un database SQL compatibile con My dal RDScluster , puoi installare e utilizzare l'estensione. mysql_fdw Questo wrapper di dati esterni ti consente di lavorare con RDS My, SQL Aurora My, SQL MariaDB e altri database compatibili con My. SQL La connessione dal per l'istanza Postgre SQL DB al SQL database My viene crittografata al meglio, a seconda delle configurazioni del client e del server. Tuttavia, se lo si desidera, è possibile imporre l'utilizzo della crittografia. Per ulteriori informazioni, consulta Utilizzo della crittografia in transito con l'estensione.

L'mysql_fdwestensione è supportata nelle per SQL Postgre. Supporta selezioni, inserimenti, aggiornamenti ed eliminazioni da e per Postgre DB in tabelle su un'istanza di database compatibile con My. RDS SQL SQL

Configurazione di DB per utilizzare l'estensione mysql_fdw SQL

La configurazione dell'mysql_fdwestensione sul Postgre prevede il caricamento dell'estensione nell'istanza SQL DB del e quindi la creazione del punto di connessione all'istanza My DB. SQL A tale scopo, è necessario disporre dei seguenti dettagli sull'istanza My DB: SQL

  • Nome host o endpoint. Per un per un'istanza My SQL DB, puoi trovare l'endpoint utilizzando 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 My SQL è 3306.

  • Nome del database. L'identificatore del database.

È inoltre necessario fornire l'accesso al gruppo di sicurezza o all'elenco di controllo degli accessi (ACL) per la SQL porta My, 3306. Sia il cluster Postgre e l'istanza RDS RDS for My SQL SQL DB devono accedere alla porta 3306. Se l'accesso non è configurato correttamente, quando provi a connetterti a My SQL -compatible table viene visualizzato un messaggio di errore simile al seguente:

ERROR: failed to connect to MySQL: Can't connect to MySQL server on 'hostname.aws-region.rds.amazonaws.com:3306' (110)

Nella seguente procedura, l'utente (utilizzando l'account rds_superuser) crea il server esterno. Quindi concede l'accesso al server esterno a specifici utenti. Questi utenti creano quindi le proprie mappature sugli account SQL utente My appropriati per lavorare con l'istanza My SQL DB.

Per utilizzare mysql_fdw per accedere a un server di database My SQL
  1. Connect alla tua istanza Postgree SQL DB usando un account con il rds_superuser ruolo. Se hai accettato le impostazioni predefinite quando hai creato il , il nome utente è e SQL puoi connetterti utilizzando lo strumento da postgres riga di comando come segue: psql

    psql --host=your-DB-instance.aws-region.rds.amazonaws.com --port=5432 --username=postgres –-password
  2. Installare l'estensione mysql_fdw come segue:

    postgres=> CREATE EXTENSION mysql_fdw; CREATE EXTENSION

Dopo aver installato l'estensione sul per l'istanza Postgre SQL DB, si configura il server esterno che fornisce la connessione a un database My. SQL

Per creare il server esterno

Esegui queste attività sul . SQL La procedura presuppone che l'utente sia connesso come utente con i privilegi di rds_superuser, come postgres.

  1. Crea un server esterno nel : SQL

    postgres=> CREATE SERVER mysql-db FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 'db-name.111122223333.aws-region.rds.amazonaws.com', port '3306'); CREATE SERVER
  2. Concedere agli utenti appropriati l'accesso al server esterno. Questi dovrebbero essere utenti non amministratori, cioè utenti senza il ruolo rds_superuser.

    postgres=> GRANT USAGE ON FOREIGN SERVER mysql-db to user1; GRANT

SQLGli utenti Postgre creano e gestiscono le proprie connessioni al database My tramite il server esterno. SQL

Supponiamo di avere una tabella semplice su un'istanza SQL SQLGli utenti di per Postgre vogliono interrogare (SELECT) INSERTUPDATE, e gli elementi su quella tabella. DELETE Si supponga che l'mysql_fdwestensione sia stata creata sulla propria istanza SQL DB RDS for Postgre, come descritto nella procedura precedente. Dopo esserti connesso all'istanza SQL DB RDS for Postgre come utente con rds_superuser privilegi, puoi procedere con i seguenti passaggi.

  1. Sull'istanza Postgre, crea un SQL server esterno:

    test=> CREATE SERVER mysqldb FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 'your-DB.aws-region.rds.amazonaws.com', port '3306'); CREATE SERVER
  2. Concedere l'utilizzo a un utente che non dispone delle autorizzazioni rds_superuser, ad esempio user1:

    test=> GRANT USAGE ON FOREIGN SERVER mysqldb TO user1; GRANT
  3. Connect as user1, quindi crea una mappatura per l'SQLutente My:

    test=> CREATE USER MAPPING FOR user1 SERVER mysqldb OPTIONS (username 'myuser', password 'mypassword'); CREATE USER MAPPING
  4. Crea una tabella esterna collegata alla SQL tabella My:

    test=> CREATE FOREIGN TABLE mytab (a int, b text) SERVER mysqldb OPTIONS (dbname 'test', table_name ''); CREATE FOREIGN TABLE
  5. Eseguire una semplice query sulla tabella esterna:

    test=> SELECT * FROM mytab; a | b ---+------- 1 | apple (1 row)
  6. È possibile aggiungere, modificare e rimuovere dati dalla SQL tabella My. Per esempio:

    test=> INSERT INTO mytab values (2, 'mango'); INSERT 0 1

    Eseguire nuovamente la query SELECT per visualizzare i risultati:

    test=> SELECT * FROM mytab ORDER BY 1; a | b ---+------- 1 | apple 2 | mango (2 rows)

Utilizzo della crittografia in transito con l'estensione

La connessione a My SQL da utilizza la crittografia in transito (/) per impostazione predefinita. TLS SSL Tuttavia, la connessione torna a essere non crittografata quando la configurazione di client e server differiscono. È possibile applicare la crittografia per tutte le connessioni in uscita specificando l'opzione per i REQUIRE SSL miei account utente. RDS SQL Questo stesso approccio funziona anche per gli account utente MariadB e Aurora MySQL.

Per i miei account SQL utente configurati suREQUIRE SSL, il tentativo di connessione fallisce se non è possibile stabilire una connessione sicura.

Per applicare la crittografia per gli account utente esistenti di My SQL database, puoi utilizzare il ALTER USER comando. La sintassi varia a seconda della SQL versione My, come illustrato nella tabella seguente. Per ulteriori informazioni, vedere ALTERUSERMy SQL Reference Manual.

My SQL 5.7, My 8.0 SQL Il mio 5.6 SQL

ALTER USER 'user'@'%' REQUIRE SSL;

GRANT USAGE ON *.* to 'user'@'%' REQUIRE SSL;

Per ulteriori informazioni sull'estensione mysql_fdw, consultare la documentazione di mysql_fdw.