Utilisation de Mes SQL bases de données à l'aide de l'extension mysql_fdw - Amazon Aurora

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de Mes SQL bases de données à l'aide de l'extension mysql_fdw

Pour accéder à une base de données SQL compatible My depuis votre , vous pouvez installer et utiliser l'extension. mysql_fdw Ce wrapper de données étrangères vous permet de travailler avec RDS MySQL, Aurora MySQL, MariaDB et d'autres bases de données compatibles avec My. SQL La connexion entre le cluster de SQL base de données Aurora Postgre RDS et la SQL base de données My Database est cryptée au mieux, en fonction des configurations du client et du serveur. Cependant, vous pouvez imposer le chiffrement si vous le souhaitez. Pour de plus amples informations, veuillez consulter Utilisation du chiffrement en transit avec l'extension.

L'mysql_fdwextension est prise en charge sur Amazon Aurora Postgre SQL versions 15.4, 14.9, 13.12, 12.16, Amazon RDS , 13.6 et supérieures. Il prend en charge les sélections, les insertions, les mises à jour et les suppressions RDS depuis une SQL base de données Postgre vers des tables d'une instance de base de données SQL compatible My.

Configuration de votre SQL base de données Aurora Postgre SQL afin d'utiliser l'extension mysql_fdw

La configuration de l'mysql_fdwextension sur votre instance de SQLbase de données Aurora Postgre RDS implique de charger l'extension dans votre instance de base de données de cluster de My SQL DB. Pour cette tâche, vous devez disposer des informations suivantes concernant l'instance My SQL DB :

  • Nom d'hôte ou point de terminaison. Pour un cluster Aurora My SQL DB RDS , vous pouvez trouver le point de terminaison à l'aide de la console. Sélectionnez l'onglet Connectivité et sécurité et regardez dans la section « Point de terminaison et port ».

  • Numéro de port. Le numéro de port par défaut pour My SQL est 3306.

  • Nom du moteur de la base de données. L'identifiant de la base de données.

Vous devez également fournir un accès au groupe de sécurité ou à la liste de contrôle d'accès (ACL) pour le SQL port My, 3306. Le cluster de SQLbase de données Aurora Postgre, le cluster de SQL base de données Aurora My RDS doivent tous deux accéder au port 3306. Si l'accès n'est pas configuré correctement, lorsque vous essayez de vous connecter à la table My SQL -compatible, un message d'erreur semblable au suivant s'affiche :

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

Dans la procédure suivante, vous (en tant que compte rds_superuser) créez le serveur externe. Vous accordez ensuite l'accès au serveur externe à des utilisateurs spécifiques. Ces utilisateurs créent ensuite leurs propres mappages vers les comptes My SQL user appropriés pour travailler avec l'instance My SQL DB.

Pour utiliser mysql_fdw pour accéder à un serveur My database SQL
  1. Connectez-vous à votre SQL instance de base de données Postgre à l'aide d'un compte doté du rds_superuser rôle. Si vous avez accepté les valeurs par défaut lorsque vous avez créé votre cluster de SQL base de données Aurora Postgre RDS , le nom d'utilisateur est postgres et vous pouvez vous connecter à l'aide de l'outil de ligne de psql commande comme suit :

    psql --host=your-DB-instance.aws-region.rds.amazonaws.com --port=5432 --username=postgres –-password
  2. Installez l'extension mysql_fdw comme suit :

    postgres=> CREATE EXTENSION mysql_fdw; CREATE EXTENSION

Une fois l'extension installée sur votre cluster de SQL base de données Aurora Postgre RDS , vous configurez le serveur étranger qui fournit la connexion à une base de données MySQL.

Pour créer le serveur externe

Effectuez ces tâches sur le cluster de SQL base de données Aurora Postgre RDS Les étapes supposent que vous êtes connecté en tant qu'utilisateur avec des privilèges rds_superuser, tels que postgres.

  1. Créez un serveur étranger dans le cluster de SQL base de données Aurora Postgre RDS

    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. Accordez aux utilisateurs appropriés l'accès au serveur externe. Il doit s'agir d'utilisateurs non administrateurs, c'est-à-dire d'utilisateurs sans rôle rds_superuser.

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

SQLLes utilisateurs de Postgre créent et gèrent leurs propres connexions à la SQL base de données My via le serveur étranger.

Exemple : utilisation d'une SQL base de données Aurora My SQL RDS depuis Aurora Postgre SQL Postgre SQL

Supposons que vous disposiez d'une table simple sur une instance de base de données Aurora Postgre RDS pour SQL instance . Vos SQL utilisateurs d'Aurora Postgre SQL RDS souhaitent interroger (SELECT), INSERTUPDATE, et DELETE les éléments de cette table. Supposons que l'mysql_fdwextension ait été créée sur votre SQL instance de base de données RDS for Postgre, comme indiqué dans la procédure précédente. Après vous être connecté à l'SQLinstance de base de données RDS for Postgre en tant qu'utilisateur disposant de rds_superuser privilèges, vous pouvez suivre les étapes suivantes.

  1. Sur l'instance de SQLbase de données Aurora Postgre RDS pour instance , créez un serveur étranger :

    test=> CREATE SERVER mysqldb FOREIGN DATA WRAPPER mysql_fdw OPTIONS (host 'your-DB.aws-region.rds.amazonaws.com', port '3306'); CREATE SERVER
  2. Accordez l'utilisation à un utilisateur dépourvu d'autorisations rds_superuser, par exemple user1 :

    test=> GRANT USAGE ON FOREIGN SERVER mysqldb TO user1; GRANT
  3. Connect en tant que user1, puis créez un mappage vers le My SQL user :

    test=> CREATE USER MAPPING FOR user1 SERVER mysqldb OPTIONS (username 'myuser', password 'mypassword'); CREATE USER MAPPING
  4. Créez une table étrangère liée à la SQL table Ma table :

    test=> CREATE FOREIGN TABLE mytab (a int, b text) SERVER mysqldb OPTIONS (dbname 'test', table_name ''); CREATE FOREIGN TABLE
  5. Exécutez une requête simple dans la table externe :

    test=> SELECT * FROM mytab; a | b ---+------- 1 | apple (1 row)
  6. Vous pouvez ajouter, modifier et supprimer des données dans le SQL tableau Mon. Par exemple :

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

    Exécutez à nouveau la requête SELECT pour voir les résultats :

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

Utilisation du chiffrement en transit avec l'extension

La connexion à My SQL depuis Aurora Postgre SQL RDS utilise le chiffrement en transit (TLS/SSL) par défaut. Toutefois, la connexion redevient non chiffrée lorsque la configuration du client et du serveur diffère. Vous pouvez appliquer le chiffrement à toutes les connexions sortantes en spécifiant l'REQUIRE SSLoption RDS pour Mes comptes SQL utilisateurs. Cette même approche fonctionne également pour les comptes utilisateur MariaDB et SQL Aurora My.

Pour Mes comptes SQL utilisateurs configurés pourREQUIRE SSL, la tentative de connexion échoue si une connexion sécurisée ne peut pas être établie.

Pour appliquer le chiffrement aux comptes utilisateur existants SQL de Ma base de données, vous pouvez utiliser la ALTER USER commande. La syntaxe varie en fonction de la SQL version My, comme indiqué dans le tableau suivant. Pour plus d'informations, reportez-vous ALTERUSERà Mon manuel SQL de référence.

SQL5,7 mai, SQL 8,0 mai Mon SQL 5.6

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

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

Pour plus d'informations sur l'extension mysql_fdw, consultez la documentation mysql_fdw.