Maison  >  Article  >  base de données  >  Explication détaillée de la gestion des autorisations dans l'apprentissage MySQL

Explication détaillée de la gestion des autorisations dans l'apprentissage MySQL

迷茫
迷茫original
2017-03-26 13:24:281532parcourir

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.)

1 Établir un lien avec le serveur mysql

Comment. le serveur MySQL vérifie-t-il si l'utilisateur peut établir un lien

1 Vérifiez d'où vous venez hôte

2 Qui êtes-vous utilisateur

3. ord

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

Il existe une bibliothèque mysql dans mysql et l'utilisateur sous cette bibliothèque. La table vérifie si l'utilisateur existe, la table db vérifie les autorisations d'exploitation dont dispose l'utilisateur sur quelles bibliothèques, et la La table tables_priv vérifie les autorisations d'exploitation dont dispose l'utilisateur sur ces tables.

Créer un utilisateur et autoriser :

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 :

Récupération des autorisations : révoquer toutes les autorisations de 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: Y
Ré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!

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