Cette rubrique explique comment modifier les autorisations d'un compte standard sur une instance ApsaraDB RDS for MySQL. Vous pouvez modifier les autorisations via la console ApsaraDB RDS, la console Data Management (DMS) ou des instructions SQL. Les autorisations d'un compte privilégié ne peuvent pas être modifiées ; elles peuvent uniquement être réinitialisées aux paramètres par défaut.
Appliquez le principe du moindre privilège lors de l'attribution des autorisations de base de données. N'accordez à chaque compte standard que les autorisations strictement nécessaires à sa fonction.
Prérequis
Avant de commencer, assurez-vous de disposer des éléments suivants :
Une instance ApsaraDB RDS for MySQL
Un compte standard créé sur l'instance
(Uniquement pour la méthode SQL) Un compte privilégié créé sur l'instance
Modifier les autorisations dans la console ApsaraDB RDS
Accédez à la page Instances. Dans la barre de navigation supérieure, sélectionnez la région où se trouve l'instance RDS. Localisez ensuite l'instance RDS et cliquez sur son ID.
Dans le volet de navigation de gauche, cliquez sur Accounts.
Localisez le compte standard dont vous souhaitez modifier les autorisations et cliquez sur Change Permissions dans la colonne Actions.
-
Dans le panneau Edit Account Permissions, modifiez les autorisations du compte.
Pour ajouter ou supprimer une base de données, sélectionnez-la puis cliquez sur l'icône > ou <.
-
Pour modifier les autorisations d'une base de données déjà autorisée, sélectionnez la base de données dans la section Authorized Databases, puis choisissez un niveau d'autorisation.
Niveau d'autorisation
Description
Read/Write (DDL + DML)
Accès complet en lecture et écriture, incluant les modifications de schéma et la manipulation des données
Read-only
Accès en lecture seule
DDL Only
Modifications de schéma uniquement (CREATE, ALTER, DROP)
DML Only
Manipulation des données uniquement (SELECT, INSERT, UPDATE, DELETE)
RemarquePour un contrôle plus fin des autorisations, utilisez des instructions SQL. Pour plus de détails, consultez Autorisations des comptes.
Cliquez sur OK.
Vérifier le résultat
Après avoir modifié les autorisations, vérifiez la liste Authorized Databases associée au compte sur la page Accounts afin de confirmer les changements.
Modifier les autorisations dans la console DMS
Pour définir des combinaisons d'autorisations personnalisées ou gérer les autorisations au niveau de tables spécifiques, utilisez la fonctionnalité Account Authorization and Management de DMS. Pour plus d'informations, consultez Gérer les autorisations des utilisateurs sur les bases de données MySQL.
Modifier les autorisations à l'aide d'instructions SQL
Un compte privilégié est requis pour accorder des autorisations à un compte standard via des instructions SQL.
Procédure
Connectez-vous à l'instance RDS à l'aide d'un client ou de la CLI.
-
Exécutez l'instruction GRANT pour accorder des autorisations au compte standard.
Accorder toutes les autorisations sur une base de données spécifique :
GRANT ALL ON <database-name>.* TO '<account-name>'@'%';Accorder des autorisations spécifiques sur une base de données spécifique :
GRANT SELECT, INSERT, UPDATE ON <database-name>.* TO '<account-name>'@'%';Remplacez
<database-name>par le nom de la base de données cible et<account-name>par le nom du compte standard.RemarquePour la syntaxe complète de l'instruction GRANT, consultez la documentation officielle MySQL.
Pour obtenir la liste des autorisations pouvant être accordées, consultez Autorisations des comptes.
Vérifier le résultat
Après avoir accordé les autorisations, confirmez les modifications en exécutant l'instruction suivante :
SHOW GRANTS FOR '<account-name>'@'%';
FAQ
Pourquoi l'erreur ERROR 1044 (42000): Access denied for user s'affiche-t-elle lors de la création d'une base de données avec un compte standard ?
Par défaut, un compte standard dispose uniquement des autorisations de connexion aux bases de données. Pour créer une base de données, utilisez d'abord un compte privilégié afin d'accorder l'autorisation CREATE :
GRANT CREATE ON *.* TO '<account-name>'@'%';
Comment refuser tout accès à l'instance RDS ?
Supprimez toutes les adresses IP de la liste d'autorisation d'adresses IP, ne conservez que l'entrée 127.0.0.1 et redémarrez l'instance RDS.
Puis-je verrouiller un compte ?
Utilisez un compte privilégié pour exécuter l'instruction suivante, puis redémarrez l'instance afin de terminer les connexions existantes :
ALTER USER '<username>' ACCOUNT LOCK;
Cette opération permet de verrouiller un compte privilégié ou un compte standard. Pour réinitialiser les autorisations d'un compte privilégié verrouillé, consultez Réinitialiser les autorisations d'un compte privilégié.
L'instruction ALTER USER ... ACCOUNT LOCK n'est pas prise en charge pour les instances RDS exécutant MySQL 5.6.
Comment accorder des autorisations pour afficher les fichiers journaux binaires ?
L'affichage des fichiers journaux binaires nécessite les autorisations REPLICATION SLAVE et REPLICATION CLIENT. Ces autorisations sont automatiquement accordées aux comptes standards et aux comptes privilégiés créés dans la console ApsaraDB RDS.
Si l'accès aux journaux binaires n'est pas disponible, utilisez un compte privilégié ou exécutez des instructions SQL pour accorder manuellement ces autorisations.