Detaillierte Einführung in die Berechtigungsverwaltung in MySQL
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:
Die Datenstruktur der Datenbanktabelle ist wie folgt:
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 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';
Nach der Erstellung melden Sie sich wie folgt an:
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:
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;
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:
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:
Sie können zu diesem Zeitpunkt Daten aktualisieren
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
Berechtigungsstufe |
Berechtigungsbeschreibung |
|
Datenbank, Tabelle oder Index |
Datenbank erstellen , Tabellen- oder Indexberechtigungen |
DROP |
Datenbank oder Tabelle |
Datenbank- oder Tabellenberechtigungen entfernen |
OPTION GEWÄHREN |
Datenbank, Tabelle oder gespeichertes Programm | Berechtigungsoptionen erteilen |
REFERENZEN |
Datenbank oder Tabelle |
|
ALTER |
Tabelle |
Änderung B. Felder, Indizes usw. hinzufügen. |
LÖSCHEN |
Tabelle | Datenlöschberechtigung |
INDEX |
Tabelle |
Indexberechtigungen |
INSERT |
Tabelle |
INSERT Berechtigungen |
SELECT |
Tabelle |
Abfrageberechtigungen | UPDATE |
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)!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



MySQL ist für Anfänger geeignet, da es einfach zu installieren, leistungsfähig und einfach zu verwalten ist. 1. Einfache Installation und Konfiguration, geeignet für eine Vielzahl von Betriebssystemen. 2. Unterstützung grundlegender Vorgänge wie Erstellen von Datenbanken und Tabellen, Einfügen, Abfragen, Aktualisieren und Löschen von Daten. 3. Bereitstellung fortgeschrittener Funktionen wie Join Operations und Unterabfragen. 4. Die Leistung kann durch Indexierung, Abfrageoptimierung und Tabellenpartitionierung verbessert werden. 5. Backup-, Wiederherstellungs- und Sicherheitsmaßnahmen unterstützen, um die Datensicherheit und -konsistenz zu gewährleisten.

MySQL ist ein Open Source Relational Database Management System. 1) Datenbank und Tabellen erstellen: Verwenden Sie die Befehle erstellte und creatEtable. 2) Grundlegende Vorgänge: Einfügen, aktualisieren, löschen und auswählen. 3) Fortgeschrittene Operationen: Join-, Unterabfrage- und Transaktionsverarbeitung. 4) Debugging -Fähigkeiten: Syntax, Datentyp und Berechtigungen überprüfen. 5) Optimierungsvorschläge: Verwenden Sie Indizes, vermeiden Sie ausgewählt* und verwenden Sie Transaktionen.

Sie können PhpMyAdmin in den folgenden Schritten öffnen: 1. Melden Sie sich beim Website -Bedienfeld an; 2. Finden und klicken Sie auf das Symbol phpmyadmin. 3. Geben Sie MySQL -Anmeldeinformationen ein; 4. Klicken Sie auf "Login".

Erstellen Sie eine Datenbank mit Navicat Premium: Stellen Sie eine Verbindung zum Datenbankserver her und geben Sie die Verbindungsparameter ein. Klicken Sie mit der rechten Maustaste auf den Server und wählen Sie Datenbank erstellen. Geben Sie den Namen der neuen Datenbank und den angegebenen Zeichensatz und die angegebene Kollektion ein. Stellen Sie eine Verbindung zur neuen Datenbank her und erstellen Sie die Tabelle im Objektbrowser. Klicken Sie mit der rechten Maustaste auf die Tabelle und wählen Sie Daten einfügen, um die Daten einzufügen.

MySQL und SQL sind wesentliche Fähigkeiten für Entwickler. 1.MYSQL ist ein Open -Source -Relational Database Management -System, und SQL ist die Standardsprache, die zum Verwalten und Betrieb von Datenbanken verwendet wird. 2.MYSQL unterstützt mehrere Speichermotoren durch effiziente Datenspeicher- und Abruffunktionen, und SQL vervollständigt komplexe Datenoperationen durch einfache Aussagen. 3. Beispiele für die Nutzung sind grundlegende Abfragen und fortgeschrittene Abfragen wie Filterung und Sortierung nach Zustand. 4. Häufige Fehler umfassen Syntaxfehler und Leistungsprobleme, die durch Überprüfung von SQL -Anweisungen und Verwendung von Erklärungsbefehlen optimiert werden können. 5. Leistungsoptimierungstechniken umfassen die Verwendung von Indizes, die Vermeidung vollständiger Tabellenscanning, Optimierung von Join -Operationen und Verbesserung der Code -Lesbarkeit.

Sie können eine neue MySQL -Verbindung in Navicat erstellen, indem Sie den Schritten folgen: Öffnen Sie die Anwendung und wählen Sie eine neue Verbindung (Strg N). Wählen Sie "MySQL" als Verbindungstyp. Geben Sie die Hostname/IP -Adresse, den Port, den Benutzernamen und das Passwort ein. (Optional) Konfigurieren Sie erweiterte Optionen. Speichern Sie die Verbindung und geben Sie den Verbindungsnamen ein.

Das Wiederherstellen von gelöschten Zeilen direkt aus der Datenbank ist normalerweise unmöglich, es sei denn, es gibt einen Backup- oder Transaktions -Rollback -Mechanismus. Schlüsselpunkt: Transaktionsrollback: Führen Sie einen Rollback aus, bevor die Transaktion Daten wiederherstellt. Sicherung: Regelmäßige Sicherung der Datenbank kann verwendet werden, um Daten schnell wiederherzustellen. Datenbank-Snapshot: Sie können eine schreibgeschützte Kopie der Datenbank erstellen und die Daten wiederherstellen, nachdem die Daten versehentlich gelöscht wurden. Verwenden Sie eine Löschanweisung mit Vorsicht: Überprüfen Sie die Bedingungen sorgfältig, um das Verhandlich von Daten zu vermeiden. Verwenden Sie die WHERE -Klausel: Geben Sie die zu löschenden Daten explizit an. Verwenden Sie die Testumgebung: Testen Sie, bevor Sie einen Löschvorgang ausführen.

Schritte zur Durchführung von SQL in Navicat: Verbindung zur Datenbank herstellen. Erstellen Sie ein SQL -Editorfenster. Schreiben Sie SQL -Abfragen oder Skripte. Klicken Sie auf die Schaltfläche Ausführen, um eine Abfrage oder ein Skript auszuführen. Zeigen Sie die Ergebnisse an (wenn die Abfrage ausgeführt wird).
