Zu den Berechtigungstabellen von MySQL gehören: 1. Benutzertabelle, die zum Aufzeichnen von Kontoinformationen verwendet wird, die eine Verbindung zum Server herstellen dürfen. Alle in dieser Tabelle aktivierten Berechtigungen sind global und gelten für alle Datenbanken. 2. Datenbanktabelle, in der die Betriebsberechtigungen der Benutzer gespeichert sind für eine bestimmte Datenbank; 3. tables_priv-Tabelle, verwendet, um Berechtigungen für eine einzelne Tabelle festzulegen; 4. columns_priv-Tabelle, verwendet, um Berechtigungen für eine einzelne Datenspalte festzulegen; 5. procs_priv-Tabelle, verwendet, um Berechtigungen für gespeicherte Prozeduren und gespeicherte Funktionen festzulegen; Berechtigungseinstellungen.
Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.
In der MySQL-Datenbank umfassen die Berechtigungstabellen die Benutzertabelle, die DB-Tabelle, die Tables_priv-Tabelle, die Columns_priv-Tabelle und die procs_priv-Tabelle.
Benutzerberechtigungstabelle
Die Benutzertabelle ist die wichtigste Berechtigungstabelle in MySQL und dient zum Aufzeichnen von Kontoinformationen, die eine Verbindung zum Server herstellen dürfen. Es ist zu beachten, dass alle in der Benutzertabelle aktivierten Berechtigungen global sind und für alle Datenbanken gelten.
Die Felder in der Benutzertabelle können grob in 4 Kategorien unterteilt werden, nämlich Benutzerspalten, Berechtigungsspalten, Sicherheitsspalten und Ressourcenkontrollspalten.
Benutzerspalte
Die Benutzerspalte speichert die Informationen, die Benutzer eingeben müssen, wenn sie eine Verbindung zur MySQL-Datenbank herstellen. Es ist zu beachten, dass die MySQL-Version 5.7 nicht mehr „Password“ als Passwortfeld verwendet, sondern es in „authentication_string“ geändert hat.
Berechtigungsspalte
Die Felder in der Berechtigungsspalte bestimmen die Berechtigungen des Benutzers und werden verwendet, um die Vorgänge zu beschreiben, die für Daten und Datenbanken im globalen Bereich zulässig sind.
Berechtigungen werden grob in zwei Kategorien unterteilt, nämlich erweiterte Verwaltungsberechtigungen und normale Berechtigungen:
Erweiterte Verwaltungsberechtigungen verwalten hauptsächlich die Datenbank, z. B. Berechtigungen zum Schließen von Diensten, Superberechtigungen und Laden von Benutzern.
Normale Berechtigungen Betreiben Sie die Datenbank, z. B. Abfrageberechtigungen, Änderungsberechtigungen usw.
Die Berechtigungsspalten der Benutzertabelle umfassen Select_priv, Insert_priv und andere Felder, die mit priv enden. Der Datentyp dieser Feldwerte ist ENUM Der Benutzer verfügt über die entsprechenden Berechtigungen, und N bedeutet, dass der Benutzer über die entsprechenden Berechtigungen verfügt. Aus Sicherheitsgründen ist der Standardwert für diese Felder N.
Wenn Sie Berechtigungen ändern möchten, können Sie die GRANT-Anweisung verwenden, um dem Benutzer einige Berechtigungen zu erteilen, oder Sie können die Berechtigungen festlegen, indem Sie die Benutzertabelle mit der UPDATE-Anweisung aktualisieren.
Sicherheitsspalte
Die Sicherheitsspalte wird hauptsächlich verwendet, um festzustellen, ob sich der Benutzer erfolgreich anmelden kann. Die Sicherheitsspalte in der Benutzertabelle ist wie in der folgenden Tabelle dargestellt:
Feldname | Feldtyp | Ist es leer | Standardwert | Beschreibung |
---|---|---|---|---|
ssl_type | enum('','ANY','X509','SPECIFIED') | NEIN | Sicherheitsfeld für SSL-Standardverschlüsselung unterstützen | |
ssl_cipher | blob | NEIN | Sicherheitsfeld für SSL-Standardverschlüsselung unterstützen | |
x509_issuer | blob | NEIN | Unterstützung x5 09 Standardfelder | |
x509_subject | blob | NEIN | Unterstützt x509-Standardfelder | |
plugin | char(64) | NEIN | mysql_native_password | Einführung von Plugins zur Passwortüberprüfung, wenn Benutzer eine Verbindung herstellen. Das Plugin erstellt einen externen/Proxy Benutzer |
passwort_expired | enum('N','Y') | NEIN | N | Ob das Passwort abgelaufen ist (N ist nicht abgelaufen, y ist abgelaufen) |
password_last_changed | Zeitstempel | JA | Zeichnen Sie die Zeit des zuletzt geänderten Passworts auf | |
password_lifetime | smallint(5) unsigned | YES | Stellen Sie die Gültigkeitsdauer des Passworts in Tagen ein | |
account_locked | enum('N ','Y') | NEIN | N | Ob der Benutzer gesperrt ist (Y gesperrt, N entsperrt) |
Hinweis: Auch wenn „password_expired“ „Y“ ist, kann sich der Benutzer weiterhin mit dem Passwort bei MySQL anmelden, es sind jedoch keine Vorgänge zulässig.
Normalerweise unterstützen Standarddistributionen kein SSL. Leser können die SHOW VARIABLES LIKE „have_openssl“-Anweisung verwenden, um zu überprüfen, ob sie über SSL-Funktionalität verfügen. Wenn der Wert von have_openssl DISABLED ist, wird die SSL-Verschlüsselungsfunktion nicht unterstützt.
Ressourcenkontrollspalte
Die Felder in der Ressourcenkontrollspalte werden verwendet, um die von Benutzern verwendeten Ressourcen zu begrenzen. Die Ressourcenkontrollspalten in der Benutzertabelle werden in Tabelle 4 angezeigt.
Feldname | Feldtyp | ob leer ist | Standardwert | Beschreibung |
---|---|---|---|---|
max_questions | int(11) ohne Vorzeichen | NEIN | 0 | Gibt die Anzahl der Vorgänge an, die zum Ausführen von Abfragen pro Stunde zulässig sind max_connections | Gibt die an Anzahl der Verbindungen, die gleichzeitig hergestellt werden dürfen
Der Standardwert für die oben genannten Felder ist 0, was bedeutet, dass es keine Begrenzung gibt. Wenn die Anzahl der Benutzeranfragen oder -verbindungen innerhalb einer Stunde das Ressourcenkontrolllimit überschreitet, wird der Benutzer gesperrt und kann hier bis zur nächsten Stunde keine entsprechenden Vorgänge ausführen. Die Werte dieser Felder können mit der GRANT-Anweisung aktualisiert werden. | db-Tabelle | |||
Benutzerspalte | Die Benutzerspalte der Datenbanktabelle enthält drei Felder, nämlich Host, Benutzer und Datenbank, die die Betriebsberechtigung eines Benutzers zum Herstellen einer Verbindung zu einer bestimmten Datenbank von einem bestimmten Host aus angeben Der Primärschlüssel der Datenbanktabelle. | Die Benutzerliste der Datenbanktabelle wird in der folgenden Tabelle angezeigt: | ||
Feldtyp | Ob es leer ist | Standardwert | Beschreibung |
char(6 0 )
NEIN KeineHostname
Dbchar(64)
NEIN
Keine
Benutzer | char(3 2) | NEIN | Keine | Benutzername |
---|---|---|---|---|
Berechtigungsspalten | Die Berechtigungsspalten in der Datenbanktabelle sind ungefähr die gleichen wie die Berechtigungsspalten in der Benutzertabelle, mit der Ausnahme, dass die Berechtigungen in der Benutzertabelle für alle Datenbanken gelten, während die Berechtigungen in Die Datenbanktabelle gilt nur für die angegebene Datenbank. Wenn Sie möchten, dass der Benutzer nur Betriebsberechtigungen für eine bestimmte Datenbank hat, können Sie zunächst die entsprechenden Berechtigungen in der Benutzertabelle auf N setzen und dann die Betriebsberechtigungen für die entsprechende Datenbank in der Datenbanktabelle festlegen. | |||
tables_priv-Tabelle wird verwendet, um Berechtigungen für eine einzelne Tabelle festzulegen, und columns_priv-Tabelle wird verwendet, um Berechtigungen für eine einzelne Datenspalte festzulegen. Die Tabellenstruktur tables_priv wird in der folgenden Tabelle angezeigt: | Feldname | Feldtyp | ||
Standardwert | Beschreibung | Host | char(60) |
Keine Host
Dbchar(64)NEIN
Keine
Benutzer | char(32) | NEIN | Keine | Benutzername | ||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Tabellenname: char(64) | Zeitstempel | Zeitstempel | NEIN | CURRENT_TIMESTAMP | ||||||||||||||||||||||||||||||||||||||||||||||||||
Table_priv | set('Select','Insert','Update','Delete',' | Create','Drop',' Grant“, „References“, „Index“, „Alter“, „Create View“, „Show View“, „Trigger“) , Aktualisieren, Löschen, Erstellen, Löschen, Gewähren, Referenzen, Indizieren und Ändern usw | stellt die Spalte in der Tabelle „Vorgangsberechtigungen“ dar, einschließlich Auswählen, Einfügen, Aktualisieren und Referenzen | |||||||||||||||||||||||||||||||||||||||||||||||||||
Die Struktur der Tabelle „columns_priv“ wird in der folgenden Tabelle angezeigt: NEIN
KeineBenutzername Routine_name
|
Das obige ist der detaillierte Inhalt vonWas sind die Berechtigungstabellen von MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!