Aller au contenu principal

Accorder des privilèges utilisateur MySQL

info

Aperçu

Le connecteur MySQL est en préversion publique. Contactez votre équipe de compte Databricks pour demander l'accès.

info

Cette page contient des références au terme slave , un terme que Databricks n'utilise pas. Lorsque le terme est supprimé de l'outil tiers, nous le supprimons de cette page.

Apprenez à accorder les privilèges requis à l'utilisateur MySQL que vous utilisez pour importer des données dans Databricks.

Databricks vous recommande de créer un utilisateur MySQL dédié exclusivement pour l'ingestion Databricks. Cet utilisateur nécessite des privilèges spécifiques pour lire les données de table et accéder aux logs binaires pour la capture des changements de données.

Méthodes d'authentification

Le connecteur MySQL prend en charge les plug-ins d'authentification suivants en fonction de votre version de MySQL :

MySQL 5.7.44 et versions ultérieures :

  • sha256_password

MySQL 8,0 et versions ultérieures :

  • sha256_password
  • caching_sha2_password (default pour MySQL 8.0)
remarque

Si vous utilisez sha256_password ou caching_sha2_password, le bouton Tester la connexion dans l'interface utilisateur de Databricks peut échouer même avec des informations d'identification valides. Il s'agit d'une limitation connue. Vous pouvez toujours créer la connexion et procéder à la configuration du pipeline.

Créer l'utilisateur de réplication

Pour créer un utilisateur MySQL dédié à la réplication, exécutez les commandes SQL suivantes sur votre base de données MySQL :

SQL
-- For MySQL version >= 8.x
CREATE USER 'lakeflow_connect_user'@'%' IDENTIFIED WITH caching_sha2_password BY 'StrongP@ssw0rd!';

-- For MySQL version 5.7.x
CREATE USER 'lakeflow_connect_user'@'%' IDENTIFIED WITH sha256_password BY 'StrongP@ssw0rd!';

Remplacer StrongP@ssw0rd! par un mot de passe fort. Le caractère générique % permet les connexions depuis n'importe quel hôte. Pour une meilleure sécurité, remplacez % par les plages d'adresses IP ou les Hostname spécifiques que Databricks utilisera pour se connecter.

Privilèges requis

Accorder les privilèges suivants à l'utilisateur de réplication :

Privilège

Description

REPLICATION SLAVE

Nécessaire pour lire les logs binaires et suivre les modifications.

REPLICATION CLIENT

Nécessaire pour accéder à l'état de la réplication et aux métadonnées.

SELECT(plugin, user) sur mysql.user table

Requis pour valider le plugin d'authentification. Vous pouvez accorder soit SELECT(plugin, user) soit le contrôle total SELECT sur la table mysql.user.

SELECT sur les bases de données et les tables cibles

Nécessaire pour lire les instantanés initiaux et les métadonnées de la table.

Privilège

Description

REPLICATION SLAVE

Nécessaire pour lire les logs binaires et suivre les modifications.

REPLICATION CLIENT

Nécessaire pour accéder à l'état de la réplication et aux métadonnées.

SELECT(plugin, user) sur mysql.user table

Requis pour valider le plugin d'authentification. Vous pouvez accorder soit SELECT(plugin, user) soit le contrôle total SELECT sur la table mysql.user.

SELECT sur les bases de données et les tables cibles

Nécessaire pour lire les instantanés initiaux et les métadonnées de la table.

Déclarations d'octroi

Exécutez les commandes SQL suivantes pour accorder les privilèges requis :

SQL
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'lakeflow_connect_user'@'%';

GRANT SELECT(plugin,user) ON mysql.user TO 'lakeflow_connect_user'@'%';

-- Grant select privilege on all user tables
GRANT SELECT ON *.* TO 'lakeflow_connect_user'@'%';

FLUSH PRIVILEGES;

Vérifier les privilèges de l'utilisateur

Pour vérifier que l'utilisateur dispose des privilèges corrects, exécutez la commande suivante :

SQL
SHOW GRANTS FOR 'lakeflow_connect_user'@'%';

Le résultat comprend :

SQL
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'lakeflow_connect_user'@'%'
GRANT SELECT (`plugin`, `user`) ON `mysql`.`user` TO 'lakeflow_connect_user'@'%'
GRANT SELECT ON *.* TO 'lakeflow_connect_user'@'%'

Ressources supplémentaires

Après avoir créé l'utilisateur de réplication, configurez votre serveur MySQL pour la réplication binlog. Les étapes de configuration varient selon le type de déploiement :