Heim  >  Artikel  >  Datenbank  >  Detaillierte Einführung in die Berechtigungsverwaltung in MySQL

Detaillierte Einführung in die Berechtigungsverwaltung in MySQL

黄舟
黄舟Original
2017-03-01 14:10:011726Durchsuche


Berechtigungsverwaltung


Das MySQL-Berechtigungssystem authentifiziert sich in den folgenden zwei Phasen:

  • Führen Sie eine Identitätsauthentifizierung für verbundene Benutzer durch, und illegalen Benutzern wird die Verbindung verweigert.

  • Gewähren Sie authentifizierten legalen Benutzern entsprechende Berechtigungen, und Benutzer können im Rahmen dieser Berechtigungen entsprechende Vorgänge in der Datenbank ausführen.
    Beim Berechtigungszugriffsprozess handelt es sich hauptsächlich um die Benutzertabelle und die Datenbanktabelle unter der MySQL-Datenbank. Die Datenstruktur der Benutzertabelle ist wie folgt:
    Detaillierte Einführung in die Berechtigungsverwaltung in MySQL
    Die Datenstruktur der Datenbanktabelle ist wie folgt:
    Detaillierte Einführung in die Berechtigungsverwaltung in MySQL
    Beschreibung der Tabelle: Sie enthält Benutzerspalten, Berechtigungsspalten, Sicherheitsspalten und Ressourcenkontrollspalten. Die am häufigsten verwendeten sind die Benutzerspalte und die Berechtigungsspalte. Berechtigungen sind in normale Berechtigungen und Verwaltungsberechtigungen unterteilt. Operationen der Benutzerdatenbank mit normalen Berechtigungen wie select_priv, insert_priv usw. Verwaltungsberechtigungen werden hauptsächlich zum Verwalten von Datenbankvorgängen verwendet, z. B. process_priv, super_priv usw.
    Wenn ein Benutzer eine Verbindung herstellt, erfolgt der Zugriffsprozess auf die Berechtigungstabelle:

  • Bestimmen Sie zunächst die verbundene IP und den Benutzer aus den drei Feldern Host, Benutzer und Passwort in der Benutzertabelle Ob Der Name und das Passwort sind in der Tabelle vorhanden. Wenn sie vorhanden sind, wird die Überprüfung bestanden, andernfalls wird die Verbindung abgelehnt.

  • Nach bestandener Authentifizierung erhalten Sie die Datenbankberechtigungen in der Reihenfolge der folgenden Berechtigungstabelle: user->db->tables->priv->columns_priv. Globale Berechtigungen decken lokale Berechtigungen ab. Wenn ein Benutzer beispielsweise über die Berechtigung „Auswählen“ in der Benutzertabelle verfügt, verfügt er auch über die Berechtigung „Auswählen“ für alle Spalten in allen Tabellen und in allen Daten.
    Detaillierte Einführung in die Berechtigungsverwaltung in MySQL
    Detaillierte Beschreibung der Berechtigungssuche: Wenn der Benutzer die Berechtigungsauthentifizierung besteht und Berechtigungen zuweist, werden die Berechtigungen in der Reihenfolge Benutzer->db->tables_priv->columns_priv zugewiesen Das heißt, die Berechtigungen werden zuerst überprüft Tabellenbenutzer, wenn die entsprechende Berechtigung in der Benutzertabelle Y ist, dann sind alle dem Benutzer entsprechenden Datenbankberechtigungen Y, und db, tables_priv und columns_priv werden nicht mehr überprüft, wenn es N ist. Die spezifischen Datenbankberechtigungen des Benutzers werden in der Datenbanktabelle gesucht. Wenn Sie die Y-Berechtigung in der Datenbank erhalten, überprüfen Sie sonst die Tabellenberechtigungen, die der Datenbank entsprechen Ja, Sie werden nicht suchen. Andernfalls überprüfen Sie die Tabelle columns_priv, um die entsprechenden spezifischen Spaltenberechtigungen anzuzeigen. Dies ist wichtig, wenn wir Benutzerberechtigungen erteilen.

Kontoverwaltung

Benutzer erstellen

Um einen Benutzer zu erstellen, können Sie die Grant-Syntax verwenden, um die Benutzertabelle zu erstellen oder direkt zu bedienen.
Methode 1:
Verwendungstabelle direkt bedienen
in Benutzer(Host,User,Password) Werte("127.0.0.1",test",password("51testit") einfügen ) );
Methode 2:
Format CREATE USER 'username'@'host' IDENTIFIED BY 'password'
eg:CREATE USER 'test'@'127.0.0.1' IDENTIFIED BY '51testit';
Detaillierte Einführung in die Berechtigungsverwaltung in MySQL
Nach der Erstellung melden Sie sich wie folgt an:
Detaillierte Einführung in die Berechtigungsverwaltung in MySQL
MySQL-Verschlüsselungsmethode: Die MYSQL323-Verschlüsselung generiert eine 16-Bit-Zeichenfolge, während in MySQLSHA1 eine 41-Bit-Zeichenfolge erhalten bleibt . Unter ihnen wird nicht zum eigentlichen Passwortvorgang hinzugefügt. Es wird beobachtet, dass viele Benutzer „“ tragen und das „*“ während des eigentlichen Knackvorgangs entfernt wird Die Anzahl der Ziffern des von MySQLSHA1 verschlüsselten Passworts beträgt 40 Personen.
Host-Feldbeschreibung

  • Der Host-Wert kann der Hostname oder die IP-Nummer sein, oder locahost stellt den lokalen Host dar.

  • Sie können Platzhalterzeichen „%“ und „_“ vor dem Host-Spaltenwert verwenden. „%“ bedeutet, dass ein beliebiger Host-Wert gleich „%“ ist. . Beispielsweise stimmt „%.myweb.com“ mit allen Hosts in allen mysql.com-Domänen überein. Der Fall ist wie folgt:

Host User 解析
myweb.wang pps pps,从myweb.wang连接
% pps pps,从任何主机连接
% 任何用户,从任何主机连接
122.164.35.127 pps pps,从122.164.35.127连接
122.164.35.% pps pps,从122.164.35.类型子网的任何主机连接

Benutzerberechtigungen anzeigen

Für den oben erstellten Test habe ich keine Autorisierungsvorgänge durchgeführt. Als ich den Testbenutzer zum Betreiben der Datenbank verwendet habe, habe ich Folgendes festgestellt:
Detaillierte Einführung in die Berechtigungsverwaltung in MySQL
Nein Datenbankbetriebsberechtigungen: Wie kann ich die Berechtigungen eines Benutzers überprüfen?
Berechtigungen anzeigen
Methode eins:
Zuschüsse für test@127.0.0.1 anzeigen;
Methode zwei:
Die in der Benutzertabelle aufgezeichneten Berechtigungen anzeigen.
select * from mysql.user where user='test' and host='127.0.0.1' G;
Detaillierte Einführung in die Berechtigungsverwaltung in MySQL

Berechtigungen erteilen

Das Syntaxformat ist wie folgt folgt:
gewähren Sie [privilege1|privilege2|alle Privilegien] für dbName|.tableName oder an user@hostName;
Wenn Sie dem Testbenutzer die xxpt-Auswahlberechtigung erteilen:
select aktivieren xxpt.* to test.127.0.0.1;
Die Datenbanktabelle wurde geändert und ein neuer Datensatz hinzugefügt. Die Benutzertabelle hat sich jedoch nicht geändert. Wie folgt:
Detaillierte Einführung in die Berechtigungsverwaltung in MySQL
Zu diesem Zeitpunkt können Sie den Testbenutzer verwenden, um Datenabfragevorgänge durchzuführen, aber Sie können keine Daten hinzufügen, löschen oder ändern. Erteilen Sie ihm also alle Berechtigungen für die xxpt-Datenbank.
Gewähren Sie alle Berechtigungen für xxpt.* an test@127.0.0.1;
Benutzertestberechtigungen sind wie folgt:
Detaillierte Einführung in die Berechtigungsverwaltung in MySQL
Sie können zu diesem Zeitpunkt Daten aktualisieren
Detaillierte Einführung in die Berechtigungsverwaltung in MySQL
Verwaltungsberechtigungen gewähren Sueper, Prozess, Datei gewähren
gewähren Sueper, Prozess, Datei Ein . zu 'test'@'127.0.0.1'
Das Ein in der Anweisung kann nur sein gefolgt von .
Hinweis: Die Nutzungsberechtigung wird für die Anmeldung verwendet und kann keine Vorgänge ausführen.

Berechtigungen löschen

Verwenden Sie Gewähren, um Berechtigungen hinzuzufügen, und Widerrufen, um Berechtigungen wiederzuverwenden. Natürlich können Berechtigungen widerrufen werden, und Sie können auch direkt auf die Tabellen user, db, tables_priv und columns_priv zugreifen. Die Nutzungserlaubnis kann jedoch nicht widerrufen werden.
Um die Lese- und Schreibberechtigungen des Tests für alle Datenbanken zu widerrufen:
Auswahl widerrufen, einfügen auf . von test@127.0.0.1;

Passwort ändern

1. Verwenden Sie „mysqladmin“
'@'127.0.0.1' identifiziert durch 'isayhello';
4. Ändern Sie direkt die Benutzertabelle
aktualisieren Sie den Benutzersatz Password=password(„newpassword“), wobei ***

;Ergänzen Sie die Berechtigungen in MySQL

Berechtigungen                                                                                                                                                                                                     ERSTELLENDROPOPTION GEWÄHRENREFERENZENALTERLÖSCHENINDEXINSERTSELECTUPDATE

Berechtigungsstufe

Berechtigungsbeschreibung

Datenbank, Tabelle oder Index

Datenbank erstellen , Tabellen- oder Indexberechtigungen

Datenbank oder Tabelle

Datenbank- oder Tabellenberechtigungen entfernen

Datenbank, Tabelle oder gespeichertes Programm

Berechtigungsoptionen erteilen

Datenbank oder Tabelle

Tabelle

Änderung B. Felder, Indizes usw. hinzufügen.

Tabelle

Datenlöschberechtigung

Tabelle

Indexberechtigungen

Tabelle

INSERT Berechtigungen

Tabelle

Abfrageberechtigungen

Tabelle

BERECHTIGUNGEN AKTUALISIEREN

ANSICHT ERSTELLEN

Ansicht

ANSICHTBERECHTIGUNGEN ERSTELLEN

ANSICHT ANZEIGEN

ANSICHT

Ansichtsberechtigungen anzeigen

ALTER ROUTINE

Store Procedure

BERECHTIGUNGEN FÜR GESPEICHERTE PROZEDUR ÄNDERN

ROUTINE ERSTELLEN

GESPEICHERTE PROZEDUR

BERECHTIGUNGEN FÜR GESPEICHERTE PROZEDUR ERSTELLEN

AUSFÜHREN

GESPEICHERTE PROZEDUR

Berechtigung zum Ausführen gespeicherter Prozeduren

DATEI

Dateizugriff auf Server-Host

Dateizugriffsrechte

TEMPORÄRE TABELLEN ERSTELLEN

Serververwaltung

Temporäre Tabellenberechtigungen erstellen

TABELLEN SPERREN

Serververwaltung

Tabellenberechtigung sperren

BENUTZER ERSTELLEN

Serververwaltung

BENUTZERBERECHTIGUNGEN ERSTELLEN

PROZESS

Serververwaltung

Prozessberechtigungen anzeigen

RELOAD

Serververwaltung

Berechtigung zum Ausführen von Flush-Hosts, Flush-Protokollen, Flush-Berechtigungen, Flush-Status, Flush-Tabellen, Flush-Threads, Aktualisierung, Neuladen und anderen Befehlen

REPLIKATIONS-CLIENT

Serververwaltung

Kopierberechtigungen

REPLIKATIONS-SLAVE

Serververwaltung

Kopierberechtigungen

DATENBANKEN ANZEIGEN

Serververwaltung

Datenbankberechtigungen anzeigen

HERUNTERFAHREN

Serververwaltung

Datenbankberechtigungen schließen

SUPER

Serververwaltung

Kill-Thread-Berechtigung ausführen

Wie MYSQL-Berechtigungen verteilt werden, das heißt, welche Berechtigungen für Tabellen festgelegt werden können, welche Berechtigungen für Spalten festgelegt werden können usw. Dies kann anhand einer Tabelle in der offiziellen Dokumentation erklärt werden:

权限分布

可能的设置的权限

表权限

‘Select’, ‘Insert’, ‘Update’, ‘Delete’, ‘Create’, ‘Drop’, ‘Grant’, ‘References’, ‘Index’, ‘Alter’

列权限

‘Select’, ‘Insert’, ‘Update’, ‘References’

过程权限

‘Execute’, ‘Alter Routine’, ‘Grant’


Berechtigungsverteilung


Berechtigungen möglicher Einstellungen Tabellenberechtigungen'Auswählen', 'Einfügen', 'Aktualisieren', 'Löschen', 'Erstellen ', ' Drop', 'Grant', 'References', 'Index', 'Alter'Spaltenberechtigungen 'Auswählen', 'Einfügen', 'Aktualisieren', 'Referenzen'Prozessberechtigungen 'Execute' , 'Alter Routine', 'Grant' Das Obige ist die detaillierte Einführung der Berechtigungsverwaltung in MySQL , und mehr 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