Maison >base de données >tutoriel mysql >Explication détaillée de la gestion des autorisations dans l'apprentissage MySQL
La signification des autorisations de la base de données :
Afin de garantir que les données commerciales de la base de données ne soient pas illégalement volées par des utilisateurs non autorisés, diverses restrictions doivent être imposées aux visiteurs de la base de données, et base de données SécuritéIl existe principalement trois types de mesures de contrôle de sécurité. Le premier est l'authentification de l'identité de l'utilisateur, qui peut être un mot de passe, une carte magnétique, une empreinte digitale et d'autres technologies. Seules les personnes ayant une identité légale peuvent entrer dans la base de données. base de données. Le deuxième type de contrôle des autorisations d'accès. Différents rôles ont des autorisations d'accès différentes à la base de données. Les objets de la base de données et les autorisations auxquelles ils accèdent doivent être définis pour chaque rôle. Le troisième type consiste à formuler un système de gestion pour la gestion des bases de données. Le système restreint le comportement des personnes en formulant des règles et réglementations correspondantes, il peut garantir que les données sont traitées correctement. personnes au bon moment.
mysqlLa vérification des autorisations des utilisateurs est divisée en deux étapes
1 Si un lien peut être établi avec le serveur mysql
2. il existe certaines autorisations d'opération (telles que : sélectionner la date de mise à jour, etc.)
Comment créer un lien vers mysql : C:UsersPC003>mysql -h192.168.6.223 -uroot -pjalja
Explication du paramètre : -h : Où établir le lien
-u : utilisateur
-p : Mot de passe
host=localhost signifie que vous pouvez utiliser l'hôte par défaut pour la liaison (C:UsersPC003>mysql -uroot -pjalja, C:UsersPC003>mysql -hlocalhost -uroot -pjalja, C:UsersPC003>mysql -h127.0.0.1 -uroot -pjalja)mysql> select user,host,password from user; +------+-----------+-------------------------------------------+ | user | host | password | +------+-----------+-------------------------------------------+ | root | localhost | *CFAFE434FB0E5D64538901E668E1EACD077A54DF | | root | % | *CFAFE434FB0E5D64538901E668E1EACD077A54DF | +------+-----------+-------------------------------------------+host=% signifie que le serveur peut établir des liens avec tous les hôtes dans un réseau local (réseau public) où il se trouve. Cette méthode Non sécurisée dans un environnement de production
host=192.168.6.224 signifie que le serveur ne peut établir un lien qu'avec l'hôte 192.168.6.224 C : UsersPC003>mysql -h192.168.6.223 -uroot -pjalja
Comment modifier l'hôte :
mysql> les données modifiées sont en mémoire et doivent être actualisées à chaque fois que des opérations liées aux privilèges utilisateur sont effectuées)
mysql> update user set host='192.168.6.223' where user ='root'Changer le mot de passe :
mysql> update user set password=password('111111') where user='root'; mysql> flush privileges;2. vérifier les autorisations dans mysql
accorder [Autorisation 1, Autorisation 2] sur *.* à l'utilisateur@'hôte' identifié par 'mot de passe';
Autorisations communes : tout, créer, supprimer, insérer, supprimer, mettre à jour, sélectionner
Par exemple : accorder à l'utilisateur ls toutes les autorisations sur toutes les bases de données et tables et peut se connecter à partir de n'importe quel hôte de ce segment LAN .
Utilisez cet utilisateur pour vous connecter : C:UsersPC003>mysql -h192.168.6.223 -uls -p111111;mysql> grant all on *.* to 'ls'@'192.168.6.%' identified by '111111';
Affichez les autorisations spécifiques de l'utilisateur ls :
mysql> select * from mysql.user where user='ls' \G; *************************** 1. row *************************** Host: 192.168.6.% User: ls Password: *FD571203974BA9AFE270FE62151AE967ECA5E0AA Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Reload_priv: Y Shutdown_priv: Y Process_priv: Y File_priv: Y Grant_priv: N References_priv: Y Index_priv: Y Alter_priv: Y Show_db_priv: Y Super_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Execute_priv: Y Repl_slave_priv: Y Repl_client_priv: Y Create_view_priv: Y Show_view_priv: Y Create_routine_priv: Y Alter_routine_priv: Y Create_user_priv: Y Event_priv: Y Trigger_priv: Y Create_tablespace_priv: Y ssl_type: ssl_cipher: x509_issuer: x509_subject: max_questions: 0 max_updates: 0 max_connections: 0 max_user_connections: 0 plugin: authentication_string: NULL
mysql> révoquer tout sur *.* de ls@'192.168.6.%';
Autoriser quelqu'un à accéder à la base de données :mysql> accorder tout sur le blog.* à ls@'192.168.6.%'; Accorder à l'utilisateur ls toutes les autorisations sur la base de données du blog.
De cette façon, l'utilisateur ls n'a pas d'autorisations dans la table utilisateur. À ce moment, une vérification des autorisations au niveau de la base de données sera effectuée
mysql> select * from mysql.db where user='ls' \G;*************************** 1. row *************************** Host: 192.168.6.% Db: blog User: ls Select_priv: Y Insert_priv: Y Update_priv: Y Delete_priv: Y Create_priv: Y Drop_priv: Y Grant_priv: N References_priv: Y Index_priv: Y Alter_priv: Y Create_tmp_table_priv: Y Lock_tables_priv: Y Create_view_priv: Y Show_view_priv: Y Create_routine_priv: Y Alter_routine_priv: Y Execute_priv: Y Event_priv: Y Trigger_priv: YRécupérer toutes les autorisations. de l'utilisateur ls et accorder des autorisations à une certaine table : Accordez les autorisations Crud pour la table utilisateur dans la bibliothèque du blog de l'utilisateur ls
De cette façon, l'utilisateur ls n'a pas d'autorisations au niveau Au niveau de la base de données, la vérification des autorisations au niveau tables_priv sera effectuée :
mysql> revoke all on *.* from ls@'192.168.6.%'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> grant insert,update,select,delete on blog.user to ls@'192.168.6.%'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)
mysql> select * from mysql.tables_priv where user='ls' \G;*************************** 1. row *************************** Host: 192.168.6.% Db: blog User: ls Table_name: user Grantor: root@localhost Timestamp: 2017-02-09 14:35:38 Table_priv: Select,Insert,Update,DeleteColumn_priv:1 row in set (0.00 sec)processus de contrôle des autorisations mysql :
Remarque : la vérification des autorisations MySQL peut être précise pour une certaine colonne 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!