Heim  >  Artikel  >  Was sind die Berechtigungstabellen der MySQL-Datenbank?

Was sind die Berechtigungstabellen der MySQL-Datenbank?

百草
百草Original
2023-06-15 09:27:072943Durchsuche

MySQL-Datenbank-Berechtigungstabellen umfassen: 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 der Benutzervorgang gespeichert ist Berechtigungen für eine bestimmte Datenbank; 3. tables_priv-Tabelle, die zum Festlegen von Berechtigungen für eine einzelne Tabelle verwendet wird; 4. columns_priv-Tabelle, die zum Festlegen von Berechtigungen für eine einzelne Datenspalte verwendet wird; 5. procs_priv-Tabelle, die zum Festlegen von Berechtigungen für gespeicherte Prozeduren und gespeicherte Funktionen verwendet wird; Berechtigungseinstellungen vornehmen.

Was sind die Berechtigungstabellen der MySQL-Datenbank?

Das Betriebssystem dieses Tutorials: Windows 10-System, MySQL-Version 8.0, 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.

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

In der Benutzerspalte werden die Informationen gespeichert, die Benutzer beim Herstellen einer Verbindung zur MySQL-Datenbank eingeben müssen. 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. Der Benutzer verfügt nicht über die entsprechenden Berechtigungen. 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 in der folgenden Tabelle dargestellt:

Zeichnen Sie die Zeit auf, zu der das Passwort zuletzt geändert wurdepassword_lifetimesmallint(5) unsigned JA Legen Sie die Gültigkeitsdauer des Passworts fest. Die Einheit ist Tage
Sicherheitsspalte der Benutzertabelle
Feldname Feldtyp Ob leer Standardwert Beschreibung
ssl_type enum('','ANY',' X509', ' ANGEGEBEN') 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ützt x509-Standardfelder
x509_subject blob NEIN
Unterstützt x509-Standardfelder
Plugin char(64) NEIN mysql_native_password Wir stellen vor Plugins Zur Passwortüberprüfung, wenn Benutzer eine Verbindung herstellen, erstellt das Plugin externe/Proxy-Benutzer , y ist abgelaufen)
password_last_changed timestamp YES

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ügt. 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.

Gibt die an Anzahl der Verbindungen, die gleichzeitig hergestellt werden dürfen

Der Standardwert der 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. Mit der GRANT-Anweisung können Sie die Werte dieser Felder aktualisieren.

2. DB-Tabelle

DB-Tabelle wird häufig verwendet und ist eine sehr wichtige Berechtigungstabelle in der MySQL-Datenbank. Die Tabelle speichert die Betriebsberechtigungen des Benutzers für eine bestimmte Datenbank. Die Felder in der Tabelle lassen sich grob in zwei Kategorien einteilen, nämlich Benutzerspalten und Berechtigungsspalten.

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. Die Kombination dieser drei Felder bildet die Datenbank Tabelle den Primärschlüssel.

Die Benutzerliste der Datenbanktabelle wird in der folgenden Tabelle angezeigt:

Die Ressourcenkontrollspalte der Benutzertabelle
Feldname Feldtyp Ob leer Standardwert Beschreibung
max_questions int(11) unsigned NEIN 0 Gibt die Anzahl der Vorgänge an, die zum Ausführen von Abfragen pro Stunde zulässig sind max_connections
Feldname Feldtyp Ob es leer ist Standardwert Beschreibung
Host char(6 0 ) NEIN Keine Hostname
Db char(64) NEIN Keine Datenbank. Name
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 der Datenbanktabelle nur für die angegebenen gelten 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.

3. Tabelle „tables_priv“

Die Tabelle „tables_priv“ wird zum Festlegen von Berechtigungen für eine einzelne Tabelle verwendet. Die Tabellenstruktur „tables_priv“ ist in der folgenden Tabelle dargestellt:

char(64) )NEINDie Zeit, zu der dies geschieht Datensatz wurde geändert Create','Drop','Grant','References',KeineNone
Feldname Feldtyp Ob es leer ist Standardwert Beschreibung
Host char(60) NEIN Keine Host
Db Zeichen (64) Keine CURRENT_TIMESTAMP
Table_priv set('Select','Insert','Update','Delete',''Index', „Ändern“, „Ansicht erstellen“, „Ansicht anzeigen“, „Trigger“) NEIN
Gibt die Operationsberechtigungen für die Tabelle an, einschließlich Auswählen, Einfügen, Aktualisieren, Löschen, Erstellen, Löschen, Gewähren, Referenzen , Index und Alter Wait Column_priv set('Select','Insert','Update','References') NO
Gibt die Betriebsberechtigungen für die Spalten in der Tabelle an, einschließlich Auswählen, Einfügen, Aktualisieren und Referenzen

4. Die Tabelle „columns_priv“ wird zum Festlegen von Berechtigungen für eine einzelne Datenspalte verwendet. Die Struktur der Tabelle „columns_priv“ ist in der folgenden Tabelle dargestellt:

Feldname

Feld Typ

Ist es leer?Standardwert:Beschreibung:Host NEIN NEINNEIN
Keine Datenbankname Benutzer char(32)
Keine Benutzername Tabellenname char(64)
Keine Tabellenname Spaltenname char (64)
Column_priv set('Select','Insert','Update','References') NO None Gibt die Operationsberechtigungen für die Spalten in der Tabelle an, einschließlich Select, Insert, Update und References

5. procs_priv-Tabelle

Die procs_priv-Tabelle kann Berechtigungen für gespeicherte Prozeduren und gespeicherte Funktionen festlegen:

stellt den Namen einer gespeicherten Prozedur oder Funktion dar stellt den Typ der gespeicherten Prozedur oder Funktion dar. Das Feld Routine_type hat zwei Werte, nämlich FUNCTION und PROCEDURE. FUNKTION bedeutet, dass es sich um eine Funktion handelt; PROZEDUR bedeutet, dass es sich um eine gespeicherte Prozedur handelt.
Feldname Feldtyp Ist Es ist leer Keine Datenbankname
Routine_type enum('FUNCTION','PROCEDURE') NO None
GrantorarChar (93) Nein Nein Einfügen oder Ändern des aufgezeichneten Benutzers
Proc_priv set ('Execute', 'Alter Routine', 'GRANT') NEIN Keine gibt die Berechtigungen an, über die Sie verfügen, einschließlich der Typen „Ausführen“, „Ändern Routine“ und „Gewähren 3“.

Das obige ist der detaillierte Inhalt vonWas sind die Berechtigungstabellen der MySQL-Datenbank?. 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