Maison >base de données >tutoriel mysql >Explication détaillée de la façon d'utiliser la commande d'autorisation MySQL Grant

Explication détaillée de la façon d'utiliser la commande d'autorisation MySQL Grant

怪我咯
怪我咯original
2017-06-23 13:43:563414parcourir

L'exemple de cet article fonctionne sur MySQL 5.0 et supérieur.

Le format simple de la commande MySQL accorder les autorisations utilisateur peut être résumé comme suit :

accorder autorisationssur objet de base de données à Utilisateur

1. accorder à l'utilisateur des données ordinaires, interroger, insérer, mettre à jour, supprimer tout tables dans la base de données Droits sur les données.

accorder sélectionnez sur testdb.* àcommon_user@'%'
accorder insérer sur testdb.* à common_user@'%'
grant mise à jour sur testdb.* àcommon_user@'%'
accorder supprimer sur testdb.* à common_user@'%'

Ou utilisez plutôt une commande MySQL :

grant select, insert, update , supprimer sur testdb.* àcommon_user@'%'

2. Accordez le développeur de base de données, créez des tables, des index, des vues, des procédures stockées et des fonctions. . . et d'autres autorisations.

accorder l'autorisation de créer, modifier et supprimer les structures de tables de données MySQL.

subvention créer sur testdb.* à développeur@'192.168.0.%';
subvention alter sur testdb.* à développeur@'192.168.0.%';
subvention drop sur testdb.* à développeur@'192.168.0.%';

grant exploite les autorisations de clé étrangère MySQL.

octroi références sur testdb.* à développeur@'192.168.0.%';

accorder l'autorisation d'utiliser les tables temporaires MySQL.

subvention créer des tables temporaires sur testdb.* à développeur@'192.168.0.%';

accorder l'autorisation d'exploiter les index MySQL.

octroi index sur testdb.* à développeur@'192.168.0.%';

accordez l'autorisation d'utiliser les vues MySQL et d'afficher le code source.

accorder créer afficher sur testdb.* à développeur@'192.168.0.%';
subventionafficher vue sur testdb.* à développeur@'192.168.0.%';

accorder l'autorisation d'utiliser les procédures et fonctions stockées MySQL.

subvention créer une routine sur testdb.* à développeur@'192.168.0.%'; -- maintenant, peut afficher l'état de la procédure
octroi modifier routine sur testdb.* à développeur@'192.168.0.%'; 🎜>-- maintenant, vous pouvez déposer une procédure
accorder exécuter à développeur@' 192.168.0.%';
3. accordez l'autorisation DBA ordinaire pour gérer une base de données MySQL.
accorder

tous
privilèges sur testdb à dba@ 'localhost'Parmi eux, le mot-clé « privilèges » peut être omis. 4. Accordez au DBA senior le pouvoir de gérer toutes les bases de données dans MySQL.

subvention

tous
sur *.* à dba@'localhost'

5. Les autorisations d'octroi MySQL peuvent être appliquées à plusieurs niveaux.

1. Grant fonctionne sur l'ensemble du serveur MySQL :

grant select on * .* to dba@localhost; -- dba peut interroger les tables de toutes les bases de données MySQL.
subvention tous sur *.* à dba @localhost; -- dba peut gérer toutes les bases de données dans MySQL

2. subventionner des travaux sur une seule base de données :

accorder select sur testdb.* à dba@localhost ; -- dba peut interroger les tables de testdb.

3. Grant fonctionne sur une seule table de données :

grant select, insert, update , supprimer sur testdb.orders à dba@localhost;

Ici, vous autorisez plusieurs photos pour une seule table utilisateur, vous pouvez exécuter l'instruction ci-dessus plusieurs fois. Par exemple :

grant select(user_id,username) on smp.users à mo_user@'%' identifié par '123345';
accorder select sur smp.mo_sms à mo_user@'%' identifié par '123345';

4. Grant agit sur les colonnes du tableau :

grant select(id, se, Rank) on testdb.apache_log à dba@localhost;

5. Grant travaille sur les procédures et fonctions stockées :

grant execute on procédure testdb.pr_add à 'dba'@'localhost'
accorder exécuter sur fonction testdb.fn_add à 'dba '@'localhost'

6. Afficher les autorisations de l'utilisateur MySQL

Afficher l'utilisateur actuel (lui-même) Autorisations :

afficher les subventions ;

Afficher les autorisations des autres utilisateurs MySQL :

afficher les subventions pour dba@localhost;

7. Révoquer les autorisations qui ont été accordées à les autorisations de l'utilisateur MySQL.

revoke a une syntaxe similaire à Grant, remplacez simplement le mot-clé "to" par "from":

grant all sur *.* à dba@localhost;
révoquer tous sur *.* de dba@localhost;

8. Notes sur l'octroi et la révocation des autorisations des utilisateurs

1. Après l'octroi, révoquez les autorisations de l'utilisateur, les autorisations ne peuvent prendre effet que si l'utilisateur se reconnecte à la base de données MySQL.

2. Si vous souhaitez que les utilisateurs autorisés accordent ces autorisations à d'autres utilisateurs, vous avez besoin de l'option "accorder l'option"

accorder sélectionner sur testdb.* àdba@localhost avec grant option;

Cette fonctionnalité n'est généralement pas utilisée. En pratique, il est préférable que les autorisations de base de données soient gérées de manière uniforme par l'administrateur de base de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn