Heim >Datenbank >MySQL-Tutorial >Beispiel für einen Grafikcode für die MySQL-Lernberechtigungsverwaltung

Beispiel für einen Grafikcode für die MySQL-Lernberechtigungsverwaltung

黄舟
黄舟Original
2017-03-04 15:00:121239Durchsuche

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 Hauptdatenbank verschiedene Einschränkungen auferlegt werden Zu den Sicherheitskontrollmaßnahmen gehören die folgenden drei Arten der Benutzeridentitätsauthentifizierung: Passwörter, Magnetkarten, Fingerabdrücke und andere Technologien. Nur Personen mit legaler Identität können die Datenbank betreten. Die zweite Art der Zugriffsberechtigungskontrolle. Verschiedene Rollen haben unterschiedliche Zugriffsberechtigungen für die Datenbank. Die Datenbankobjekte und Berechtigungen, auf die sie zugreifen, müssen für jede Rolle festgelegt werden. Der dritte Typ besteht darin, ein Verwaltungssystem für die Datenbankverwaltung zu formulieren. Durch die Formulierung entsprechender Regeln und Vorschriften kann sichergestellt werden, dass die Daten von den richtigen Personen zur richtigen Zeit ordnungsgemäß verwaltet werden.

Die Überprüfung der Benutzerberechtigungen durch MySQL ist in zwei Phasen unterteilt

1. Ob es eine Verbindung mit dem MySQL-Server herstellen kann

2. Ob es über bestimmte Betriebsberechtigungen verfügt (z als: Update auswählen usw.)

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

Wie überprüft der MySQL-Server, ob der Benutzer eine Verbindung herstellen kann

1. Überprüfen Sie, woher Sie kommen.

Wer sind Sie?

3. So stellen Sie eine Verbindung zu MySQL her: C :UsersPC003>mysql -h192.168.6.223 -uroot -pjalja

Parametererklärung: -h: Wo soll der Link hergestellt werden

-u: Benutzer

-p : Passwort

host=localhost Gibt an, dass der Standardhost für die Verknüpfung verwendet werden kann (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 in einem lokalen Netzwerk (öffentliches Netzwerk) herstellen kann, in dem er sich befindet Produktionsumgebung


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

So ändern Sie den Host:

MySQL-Flush-Berechtigungen (Da sich die geänderten Daten im Speicher befinden und jedes Mal aktualisiert werden müssen, wenn Vorgänge im Zusammenhang mit Benutzerberechtigungen ausgeführt werden)

mysql> update user set host='192.168.6.223' where user ='root'

Passwort ändern:

2. So überprüfen Sie Berechtigungen in MySQL

mysql> update user set password=password('111111') where user='root';
mysql> flush privileges;

Es gibt eine MySQL-Bibliothek In MySQL prüft die Benutzertabelle unter der Bibliothek, ob der Benutzer existiert, die Datenbanktabelle prüft, welche Betriebsberechtigungen der Benutzer für welche Bibliotheken hat, und die Tabelle tables_priv prüft, welche Betriebsberechtigungen dieser 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.

mysql> grant all on *.* to 'ls'@'192.168.6.%' identifiziert durch '111111';

Verwenden Sie diesen Benutzer zum Anmelden: C:UsersPC003>mysql -h192 .168.6.223 -uls -p111111;

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


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
Berechtigungswiederherstellung: Alle Berechtigungen von ls widerrufen


Berechtigungen für eine bestimmte Bibliothek erteilen:

mysql> revoke all on *.* from ls@'192.168.6.%';

mysql> to ls@ '192.168.6.%'; Gewähren Sie dem Benutzer ls alle Berechtigungen für die Blog-Datenbank.
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 Inhalt der grafischen Codebeispiele für die Berechtigungsverwaltung für das MySQL-Lernen. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


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