Maison > base de données > tutoriel mysql > le corps du texte

Comment utiliser la commande Grant dans MySQL

coldplay.xixi
Libérer: 2020-07-11 17:33:58
avant
3069 Les gens l'ont consulté

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

Le format simple de la commande d'autorisation utilisateur MySQL peut être résumé comme suit :

grant 权限 on 数据库对象 to 用户
Copier après la connexion

Recommandations d'apprentissage associées : Tutoriel vidéo MySQL

1. Accordez aux utilisateurs de données ordinaires le droit d'interroger, d'insérer, de mettre à jour et de supprimer toutes les données des tables de la base de données.

grant select on testdb.* to common_user@'%'
grant insert on testdb.* to common_user@'%'
grant update on testdb.* to common_user@'%'
grant delete on testdb.* to common_user@'%'
Copier après la connexion

Ou utilisez plutôt une commande MySQL :

grant select, insert, update, delete on testdb.* to common_user@'%'
Copier après la connexion

2. Autorisez le développeur de base de données à créer 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.

grant create on testdb.* to developer@'192.168.0.%';
grant alter on testdb.* to developer@'192.168.0.%';
grant drop on testdb.* to developer@'192.168.0.%';
Copier après la connexion

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

grant references on testdb.* to developer@'192.168.0.%';
Copier après la connexion

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

grant create temporary tables on testdb.* to developer@'192.168.0.%';
Copier après la connexion

accorde l'autorisation d'utiliser les index MySQL.

grant index on testdb.* to developer@'192.168.0.%';
Copier après la connexion

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

grant create view on testdb.* to developer@'192.168.0.%';
grant show view on testdb.* to developer@'192.168.0.%';
Copier après la connexion

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

grant create routine on testdb.* to developer@'192.168.0.%'; -- now, can show procedure status
grant alter routine on testdb.* to developer@'192.168.0.%'; -- now, you can drop a procedure
grant execute on testdb.* to developer@'192.168.0.%';
Copier après la connexion

3. accorder l'autorité d'un administrateur de base de données ordinaire pour gérer une base de données MySQL.

grant all privileges on testdb to dba@'localhost'
Copier après la connexion

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.

grant all on *.* to dba@'localhost'
Copier après la connexion

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 可以查询 MySQL 中所有数据库中的表。
grant all on *.* to dba@localhost; -- dba 可以管理 MySQL 中的所有数据库
Copier après la connexion

2. Grant fonctionne sur une seule base de données :

grant select on testdb.* to dba@localhost; -- dba 可以查询 testdb 中的表。
Copier après la connexion

3. table Ci-dessus :

grant select, insert, update, delete on testdb.orders to dba@localhost;
Copier après la connexion

Ici, lors de l'autorisation de plusieurs tables à un utilisateur, l'instruction ci-dessus peut être exécutée plusieurs fois. Par exemple :

grant select(user_id,username) on smp.users to mo_user@'%' identified by '123345';
grant select on smp.mo_sms to mo_user@'%' identified by '123345';
Copier après la connexion

4. Grant travaille sur les colonnes du tableau :

grant select(id, se, rank) on testdb.apache_log to dba@localhost;
Copier après la connexion

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

grant execute on procedure testdb.pr_add to 'dba'@'localhost'
grant execute on function testdb.fn_add to 'dba'@'localhost'
Copier après la connexion

6. Autorisations de l'utilisateur MySQL

Afficher les autorisations de l'utilisateur (auto) actuel :

show grants;
Copier après la connexion

Afficher les autres autorisations de l'utilisateur MySQL :

show grants for dba@localhost;
Copier après la connexion

7. La révocation a été accordée à Autorisations pour les autorisations des utilisateurs MySQL.

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

grant all on *.* to dba@localhost;
revoke all on *.* from dba@localhost;
Copier après la connexion

8 Grant MySQL, révoquer les autorisations utilisateur Notes .

1. Après avoir accordé et révoqué les autorisations utilisateur, l'utilisateur doit se reconnecter à la base de données MySQL pour que les autorisations prennent effet.

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

grant select on testdb.* to dba@localhost with grant option;
Copier après la connexion

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!

Étiquettes associées:
source:jb51.net
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal