Heim  >  Artikel  >  Datenbank  >  Detaillierte Erläuterung der Berechtigungsverwaltung beim MySQL-Lernen

Detaillierte Erläuterung der Berechtigungsverwaltung beim MySQL-Lernen

迷茫
迷茫Original
2017-03-26 13:24:281499Durchsuche

Die Bedeutung von Datenbankberechtigungen:

Um sicherzustellen, dass die Geschäftsdaten in der Datenbank nicht illegal von unbefugten Benutzern gestohlen werden, müssen den Besuchern der Datenbank verschiedene Einschränkungen auferlegt werden, und Datenbank SicherheitEs gibt hauptsächlich drei Arten von Sicherheitskontrollmaßnahmen. Die erste ist die Authentifizierung der Benutzeridentität, bei der es sich um ein Passwort, eine Magnetkarte, einen Fingerabdruck und andere Technologien handeln kann Datenbank. Die zweite Art der Zugriffsberechtigungskontrolle. Verschiedene Rollen haben unterschiedliche Zugriffsberechtigungen für die Datenbank Objekte und Berechtigungen, auf die sie zugreifen, müssen für jede Rolle festgelegt werden. Der dritte Typ besteht darin, ein Managementsystem für die Datenbankverwaltung zu formulieren. Das System beschränktdas Verhalten und kann so sicherstellen, dass die Daten ordnungsgemäß verarbeitet werden Menschen zur richtigen Zeit.

MySQLDie Prüfung der Benutzerberechtigungen ist in zwei Stufen unterteilt

1. Ob eine Verbindung mit dem MySQL-Server hergestellt werden kann

Ob Es gibt bestimmte Betriebsberechtigungen (z. B.: Datum auswählen usw.)

1. Stellen Sie eine Verbindung mit dem MySQL-Server her

Wie Überprüft der MySQL-Server, ob der Benutzer einen Link herstellen kann

Überprüfen Sie, woher Sie kommen

Wer sind Sie?

ord

So verknüpfen Sie eine Verbindung zu MySQL: C:UsersPC003>mysql -h192.168.6.223 -uroot -pjalja

Parametererklärung: -h: Wo soll die Verbindung hergestellt werden

-u: Benutzer

  -p: Passwort

host=localhost bedeutet, dass Sie den Standardhost für die Verknüpfung verwenden können (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=% bedeutet, dass der Server Verbindungen zu allen Hosts herstellen kann in einem lokalen Netzwerk (öffentliches Netzwerk), in dem es sich befindet. Diese Methode ist in einer Produktionsumgebung nicht sicher.


host=192.168.6.224 bedeutet, dass der Server nur eine Verbindung mit dem 192.168.6.224-Host C herstellen kann: UsersPC003>mysql -h192.168.6.223 -uroot -pjalja

So ändern Sie den Host:

mysql> Flush-Berechtigungen (da die geänderte Daten befinden sich im Speicher und müssen jedes Mal aktualisiert werden, wenn Vorgänge im Zusammenhang mit Benutzerrechten ausgeführt werden)
mysql> update user set host='192.168.6.223' where user ='root'

Passwort ändern:

mysql> update user set password=password('111111') where user='root';
mysql> flush privileges;
2 Überprüfen Sie die Berechtigungen in MySQL

Es gibt eine MySQL-Bibliothek in MySQL und den Benutzer unter dieser Bibliothek. Die Tabelle prüft, ob der Benutzer existiert, die Datenbanktabelle prüft, welche Betriebsberechtigungen der Benutzer für welche Bibliotheken hat und die Die Tabelle tables_priv prüft, welche Betriebsberechtigungen der Benutzer für diese Tabellen hat.

Benutzer erstellen und autorisieren:

Gewähren Sie [Berechtigung 1, Berechtigung 2] auf *.* an Benutzer@'Host', identifiziert durch 'Passwort';

Allgemeine Berechtigungen: alle, erstellen, löschen, einfügen, löschen, aktualisieren, auswählen

Zum Beispiel: Erteilen Sie dem Benutzer ls alle Berechtigungen für alle Datenbanken und alle Tabellen und können Sie sich von jedem Host in diesem LAN aus anmelden Segment.

Verwenden Sie diesen Benutzer zum Anmelden: C:UsersPC003>mysql -h192.168.6.223 -uls -p111111;
mysql> grant all on *.* to 'ls'@'192.168.6.%' identified by '111111';


Sehen Sie sich die spezifischen Berechtigungen des ls-Benutzers an:

Berechtigungswiederherstellung: alle Berechtigungen von ls widerrufen
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> alle Berechtigungen für *.* von ls@'192.168.6.%';

Autorisieren Sie jemandem Berechtigungen für die Datenbank:

mysql> gewähren Sie alle Berechtigungen für den Blog.* an ls@'192.168.6.%';

Auf diese Weise verfügt der ls-Benutzer nicht über Berechtigungen in der Benutzertabelle. Zu diesem Zeitpunkt wird eine Berechtigungsprüfung auf Datenbankebene durchgeführt

Alle Berechtigungen wiederherstellen des ls-Benutzers und erteilen Sie Berechtigungen für eine bestimmte Tabelle: Gewähren Sie Crud-Berechtigungen für die Benutzertabelle in der ls-Benutzer-Blogbibliothek
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

Auf diese Weise hat der ls-Benutzer keine Berechtigungen am Datenbankebene. Zu diesem Zeitpunkt wird die Berechtigungsprüfung auf der Ebene tables_priv durchgeführt:

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-Berechtigungskontrollprozess:
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)


Hinweis: Die MySQL-Berechtigungsprüfung kann für eine bestimmte Datenspalte genau sein.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Berechtigungsverwaltung beim MySQL-Lernen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn