Maison  >  Article  >  base de données  >  Quelles autorisations y a-t-il dans MySQL

Quelles autorisations y a-t-il dans MySQL

WBOY
WBOYoriginal
2022-05-16 15:28:277837parcourir

Autorisations de mysql : 1. Autorisations globales, applicables à toutes les bases de données du serveur, stockées dans "mysql.user" ; 2. Autorisations de base de données, applicables à toutes les cibles de la base de données, stockées dans "mysql.db" et " mysql .host" ; 3. Autorisations de table, applicables à toutes les colonnes de la table ; 4. Autorisations de colonne, etc.

Quelles autorisations y a-t-il dans MySQL

L'environnement d'exploitation de ce tutoriel : système windows10, version mysql8.0.22, ordinateur Dell G3.

Quelles sont les autorisations dans MySQL

Classification spécifique des autorisations

1 Niveau global

Les autorisations globales s'appliquent à toutes les bases de données d'un serveur donné. Ces autorisations sont stockées dans la table mysql.user. GRANT ALL ON *.* et REVOKE ALL ON *.* accordent et révoquent uniquement les autorisations globales.

2. Niveau de base de données

Les autorisations de base de données s'appliquent à toutes les cibles d'une base de données donnée. Ces autorisations sont stockées dans les tables mysql.db et mysql.host. GRANT ALL ON db_name.* et REVOKE ALL ON db_name.* accordent et révoquent uniquement les autorisations de base de données.

3. Niveau table

Les autorisations de table s'appliquent à toutes les colonnes d'une table donnée. Ces autorisations sont stockées dans la table mysql.tables_priv. GRANT ALL ON db_name.tbl_name et REVOKE ALL ON db_name.tbl_name accordent et révoquent uniquement les autorisations de table.

4. Niveau de colonne

Les autorisations de colonne s'appliquent à une seule colonne dans un tableau donné. Ces autorisations sont stockées dans la table mysql.columns_priv. Lors de l'utilisation de REVOKE, vous devez spécifier les mêmes colonnes que les colonnes autorisées.

5. Niveau de sous-programme

Les autorisations CREATE ROUTINE, ALTER ROUTINE, EXECUTE et GRANT s'appliquent aux sous-programmes stockés. Ces autorisations peuvent être accordées au niveau global et au niveau de la base de données. De plus, en plus de CREATE ROUTINE, ces autorisations peuvent être accordées au niveau du sous-programme et stockées dans la table mysql.procs_priv

Connaissances supplémentaires :

1 Tests au niveau global

Créer un test de compte de test et accorder. Autorisations de niveau global. Comme indiqué ci-dessous :

mysql> set global validate_password_policy=0;
mysql> grant select,insert on *.* to test@'%' identified by 'test';
mysql> flush privileges;

Quelles autorisations y a-t-il dans MySQL

Utilisez les deux méthodes suivantes pour interroger les autorisations accordées pour tester. Comme indiqué ci-dessous :

mysql> show grants for test;
mysql> select * from mysql.user where user='test'G;

Quelles autorisations y a-t-il dans MySQL

2. Test au niveau de la base de données

Créez un test de compte de test et accordez des autorisations au niveau de la base de données. Comme indiqué ci-dessous :

mysql> drop user test;
mysql> grant select,insert,update,delete on jpcpdb.* to test@'%' identified by 'test@123';
mysql> select * from mysql.user where user='test'G; --可以看到无任何授权。
mysql> show grants for test;
mysql> select * from mysql.db where user='test'G;

Quelles autorisations y a-t-il dans MySQL

Quelles autorisations y a-t-il dans MySQL

3. Test au niveau de la table

Créez un test de compte de test et accordez des autorisations au niveau de la table. Comme indiqué ci-dessous :

mysql> drop user test;
mysql> flush privileges;
mysql> grant all on jpcpdb.user to test@'%' identified by 'test@123';
mysql> show grants for test;
mysql> select * from mysql.tables_privG;

Quelles autorisations y a-t-il dans MySQL

4. Test au niveau de la colonne

Créez un test de compte de test et accordez des autorisations au niveau de la colonne. Comme indiqué ci-dessous :

mysql> drop user test;
mysql> flush privileges;
mysql> grant select (id, name) on jpcpdb.user to test@'%' identified by 'test@123';
mysql> flush privileges;
mysql> select * from mysql.columns_priv;
mysql> show grants for test;

Quelles autorisations y a-t-il dans MySQL

5. Test de niveau de sous-programme

Créez un test de compte de test et accordez des autorisations au niveau du sous-programme. Comme indiqué ci-dessous :

mysql> DROP PROCEDURE IF EXISTS PRC_TEST;
mysql> DELIMITER //
mysql> CREATE PROCEDURE PRC_TEST()
-> BEGIN
-> SELECT * FROM user;
-> END //
mysql> DELIMITER ;
mysql> grant execute on procedure jpcpdb.PRC_TEST to test@'%' identified by 'test@123';
mysql> flush privileges;
mysql> show grants for test;

mysql> sélectionnez * depuis mysql.procs_priv où User='test';Quelles autorisations y a-t-il dans MySQL

Résumé

Si vous avez besoin d'afficher les autorisations accordées à l'utilisateur, vous devez afficher les autorisations accordées à partir de ces cinq niveaux. Vérifiez les autorisations accordées à chaque niveau une par une de haut en bas ou de petit vers le haut.

Une base de données est un système général de traitement de données pour une unité ou un domaine d'application. Elle stocke un ensemble de données pertinentes appartenant aux entreprises et aux services commerciaux, aux groupes et aux individus. Les données de la base de données sont établies dans une perspective globale et organisées, décrites et stockées selon un certain modèle de données. Sa structure repose sur la connexion naturelle entre les données, qui peuvent fournir tous les chemins d'accès nécessaires, et les données ne sont plus ciblées sur une application spécifique, mais sont orientées vers l'ensemble de l'organisation et présentent des caractéristiques structurelles globales.

Apprentissage recommandé : Tutoriel vidéo mysql

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