Heim  >  Artikel  >  Datenbank  >  Hat MySQL eine Benutzertabelle?

Hat MySQL eine Benutzertabelle?

青灯夜游
青灯夜游Original
2022-02-24 18:43:572937Durchsuche

MySQL hat eine Benutzertabelle. Die Benutzertabelle ist eine Berechtigungstabelle in MySQL, die zum Aufzeichnen von Kontoinformationen verwendet wird, die eine Verbindung zum Server herstellen dürfen. Die Felder in der Benutzertabelle können grob in vier Kategorien unterteilt werden, nämlich Benutzerspalten, Berechtigungsspalten, Sicherheitsspalten und Ressourcensteuerung Spalten.

Hat MySQL eine Benutzertabelle?

Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL5.7-Version, Dell G3-Computer.

MySQL hat eine Benutzertabelle.

Die Benutzertabelle ist die wichtigste Berechtigungstabelle in MySQL und wird zum Aufzeichnen von Kontoinformationen verwendet, 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. Im Folgenden wird hauptsächlich die Bedeutung dieser Felder vorgestellt.

Benutzerspalte

In der Benutzerspalte werden die Informationen gespeichert, 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.

Die Benutzerliste für MySQL Version 5.7 ist in Tabelle 1 dargestellt.

Tabelle 1: Benutzerspalte der Benutzertabelle
Feldname Feldtyp Ist es leer Standardwert Beschreibung
Host char(60) NEIN Keine Hostname
Benutzer char(32) NEIN Keine Benutzername
Authentifizierungszeichenfolge Text JA N ein Passwort

Wenn sich ein Benutzer anmeldet, erlaubt ihm das MySQL-Datenbanksystem nur dann die Anmeldung, wenn diese drei Felder gleichzeitig übereinstimmen. Beim Anlegen eines neuen Benutzers werden auch die Werte dieser drei Felder festgelegt. Wenn Sie das Kennwort eines Benutzers ändern, ändern Sie tatsächlich den Wert des Felds „authentication_string“ der Benutzertabelle. Daher bestimmen diese 3 Felder, ob sich der Benutzer anmelden kann.

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.

NEIN NEIN Kann er die Befehle „Select into Outfile“ und „Load Data Infile“ ausführen Können Sie Ihre Berechtigungen anderen Benutzern erteilen? Ist es möglich, Fremdschlüsseleinschränkungen zu erstellen? enum('N','Y')enum('N ','Y')enum('N','Y')enum('N',' Y')Repl_slave_privRepl_client_priv Create_view_privenum('N ','Y')enum('N','Y')enum('N','Y')enum('N','Y')NEINN Ist es möglich, Trigger zu erstellen und zu löschen? Ist es möglich, einen Tablespace zu erstellen

Wenn Sie Berechtigungen ändern möchten, können Sie die GRANT-Anweisung verwenden, um dem Benutzer einige Berechtigungen zu erteilen, oder Sie können 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 Tabelle 3 dargestellt:

Tabelle 2: Berechtigungsspalte der Benutzertabelle
Feldname Feldtyp Ob leer Standardwert Beschreibung
Select_priv enum('N','Y' ) ?? INSERT-Befehl 'Y') NEIN N Ist es möglich, vorhandene Daten über den DELETE-Befehl zu löschen? um neue Datenbanken und Tabellen zu erstellen. N','Y')
N Ist es möglich, bestimmte Befehle auszuführen, um die verschiedenen von MySQL verwendeten internen Caches zu leeren und neu zu laden, einschließlich Protokolle, Berechtigungen, Hosts, Abfragen und Tabellen Shutdown_priv enum('N','Y')
N Ist es möglich, den MySQL-Server herunterzufahren? Sie sollten sehr vorsichtig sein, wenn Sie diese Berechtigung einem anderen Benutzer als dem Root-Konto erteilen PROCESSLIST-Befehl Der Prozess anderer Benutzer leFile_priv enum ('n', 'y') Nein n
Grant_priv enum (' 'N','Y') NEIN N
NEIN N Ist es möglich, Prüfungen zum Hinzufügen und Löschen des Index durchzuführen? umbenannt und geändert Show_db_priv
NO N Kann der Server angezeigt werden? Name aller Datenbanken auf Super_priv
NEIN N Ist es möglich, bestimmte leistungsstarke Verwaltungsfunktionen auszuführen, z. B. solche, für die der Benutzer über ausreichende Zugriffsrechte verfügt? Verwenden Sie den Befehl SET GLOBAL um globale MySQL-Variablen zu ändern und verschiedene Befehle zur Replikation und Protokollierung auszuführen. (Super-Berechtigungen) Create_tmp_table_priv
NEIN N Ist es möglich, temporäre Tabellen zu erstellen Lock_tables_priv
NEIN N Ist es möglich, den Befehl LOCK TABLES zu verwenden, um den Zugriff/die Änderung von Tabellen zu verhindern? Ob die gespeicherte Prozedur
enum('N','Y') NEIN N die Binärprotokolldatei lesen kann, die zum Verwalten einer replizierten Datenbankumgebung verwendet wird
enum( 'N','Y') NEIN N Ist es möglich, den Standort des Replikations-Slave-Servers und des Master-Servers zu bestimmen
enum('N','Y' ) NEIN N Ist es möglich, eine Ansicht zu erstellen? Create_routine_priv
NEIN N Können gespeicherte Prozeduren und Funktionen geändert oder verworfen werden Alter_routine_priv
NEIN N Kann der Speicher geändert oder gelöscht werden? Funktionen und Funktionen Create_user_priv
NEIN N Ob es möglich ist, CREATE USER auszuführen Befehl, der zum Erstellen eines neuen MySQL-Kontos verwendet wird. Event_priv
Eingeführte Plugins zur Passwortüberprüfung, wenn Benutzer eine Verbindung herstellen, Plugin erstellt externen/Proxy-Benutzer Ist das Passwort abgelaufen (N ist nicht abgelaufen, y ist abgelaufen)Zeichnen Sie die Zeit auf, zu der das Passwort zuletzt geändert wurdeLegen Sie die Gültigkeitsdauer des Passworts in Tagen festOb der Benutzer gesperrt ist (Y gesperrt, N entsperrt)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. RessourcenkontrollspalteDie Felder in der Ressourcenkontrollspalte werden verwendet, um die von Benutzern verwendeten Ressourcen zu begrenzen. Die Ressourcenkontrollspalten in der Benutzertabelle werden in Tabelle 4 angezeigt. Feldnamemax_questions
Tabelle 3: Sicherheitsspalte des Benutzers Tabelle
Feldname Feldtyp Ist es leer? Standardwert Beschreibung
ssl_type enum('','ANY','X509','SPECIFIED') NEIN Unterstützte SSL-Standardverschlüsselungssicherheit. Feld
x509_issuer blob NEIN Unterstützt den x509-Standard Felder: x509_subject _password
password_expired enum('N','Y') NO N
password_last_changed Zeitstempel JA
password_lifetime smallint(5) unsigned JA
account_locked enum('N','Y ') NEIN N
Hinweis: Auch wenn „password_expired“ „Y“ ist, kann der Benutzer dies tun Verwenden Sie das Kennwort auch, um sich bei MySQL anzumelden, dürfen Sie jedoch keine Vorgänge ausführen.
Tabelle 4: Ressourcenkontrollspalte der Benutzertabelle
Feldtyp Ob leer Standardwert Beschreibung
int(11) un signiert

NEIN

0

Gibt die Anzahl der pro Stunde zulässigen Abfragevorgänge an.

max_updates

int(11) unsigned

NOGibt die Anzahl der pro Stunde zulässigen Aktualisierungsvorgänge an. VerbindungenDer 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. Die Werte dieser Felder können mit der GRANT-Anweisung aktualisiert werden. 【Verwandte Empfehlung: 】
0
int (11) ohne Vorzeichen dürfen gleichzeitig eingerichtet werden MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonHat MySQL eine Benutzertabelle?. 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