Detaillierte Erläuterung der MySQL-Benutzerrechteverwaltung

Detaillierte Erläuterung der MySQL-Benutzerrechteverwaltung

Vorwort:

Ich bin nicht sicher, ob Sie sich mit der Benutzerrechteverwaltung für Datenbanken auskennen. Als DBA ist die Benutzerrechteverwaltung ein unvermeidlicher Teil Ihrer Arbeit. Insbesondere bei Produktionsdatenbanken sollten die Datenbankbenutzerberechtigungen standardisiert verwaltet werden. Dieser Artikel stellt die relevanten Inhalte der MySQL-Benutzerrechteverwaltung vor.

1. Einführung in die Benutzerrechte

Nachdem wir einen Datenbankbenutzer erstellt haben, können wir noch keine Vorgänge ausführen. Wir müssen dem Benutzer entsprechende Zugriffsberechtigungen zuweisen.

Ein einfaches Verständnis der MySQL-Benutzerberechtigungen besteht darin, dass die Datenbank Benutzern nur erlaubt, Dinge im Rahmen ihrer Rechte zu tun, und die Grenzen nicht überschreiten kann. Wenn Sie beispielsweise nur Auswahlvorgänge ausführen dürfen, können Sie keine Aktualisierungsvorgänge durchführen. Sie dürfen nur von einer bestimmten IP-Adresse aus eine Verbindung zu MySQL herstellen. Von keinem anderen Rechner außer dieser IP-Adresse aus können Sie eine Verbindung zu MySQL herstellen.

In MySQL sind Benutzerberechtigungen ebenfalls in Ebenen unterteilt. Die Berechtigungen, die erteilt werden können, sind wie folgt:

  • Spaltenebene, bezogen auf eine bestimmte Spalte in der Tabelle. Mit der UPDATE-Anweisung können Sie beispielsweise den Wert der Spalte „student_name“ in der Tabelle „students“ aktualisieren.
  • Tabellenebene, bezogen auf alle Daten in einer bestimmten Tabelle. Mit der SELECT-Anweisung können Sie beispielsweise die Berechtigungen aller Daten in der Tabelle „Students“ abfragen.
  • Datenbankebene, bezogen auf alle Tabellen in einer bestimmten Datenbank. Sie können beispielsweise die Berechtigung zum Erstellen einer neuen Tabelle in der vorhandenen Datenbank mytest erteilen.
  • Global, bezogen auf alle Datenbanken in MySQL. Sie können beispielsweise eine vorhandene Datenbank löschen oder eine neue Datenbank erstellen.

Berechtigungsinformationen werden in den Systemtabellen user, db, tables_priv, columns_priv und procs_priv der MySQL-Systembibliothek gespeichert.

  • Benutzertabelle: speichert Benutzerkontoinformationen und Berechtigungen auf globaler Ebene (alle Datenbanken).
  • DB-Tabelle: speichert Berechtigungen auf Datenbankebene, die bestimmen, welche Benutzer von welchen Hosts auf diese Datenbank zugreifen können.
  • tables_priv-Tabelle: speichert Berechtigungen auf Tabellenebene, die bestimmen, welche Benutzer von welchen Hosts auf diese Tabelle in der Datenbank zugreifen können.
  • columns_priv-Tabelle: speichert Berechtigungen auf Spaltenebene, die bestimmen, welche Benutzer von welchen Hosts auf dieses Feld in der Datenbanktabelle zugreifen können.
  • procs_priv-Tabelle: speichert Berechtigungen auf gespeicherter Prozedur- und Funktionsebene.

Weitere Informationen finden Sie in der offiziellen Dokumentation. Die Berechtigungen, die erteilt werden können, sind in der folgenden Tabelle aufgeführt:

Es scheint, dass es viele verschiedene Berechtigungen gibt, die erteilt werden können. Tatsächlich können sie jedoch grob in drei Kategorien unterteilt werden: Daten, Struktur und Verwaltung, die sich grob wie folgt klassifizieren lassen:

2. Tatsächliches Berechtigungsmanagement

Normalerweise verwenden wir die Anweisung grant, um Datenbankbenutzern Berechtigungen zu erteilen. Wir empfehlen, den Benutzer zuerst mit der Anweisung create user zu erstellen und dann die Berechtigungen separat zu erteilen. Schauen wir uns dies anhand eines Beispiels im Detail an:

# Benutzer erstellen. Benutzer „test_user“@„%“ erstellen, identifiziert durch „xxxxxxxx“;

# Globale Berechtigungen GRANT super, select on *.* to 'test_user'@'%';

# Datenbankberechtigungen GRANT select,insert,update,delete,create,alter,execute on `testdb`.* to 'test_user'@'%';

# Tabellenberechtigungen GRANT select,insert auf `testdb`.tb an 'test_user'@'%';

# Spaltenberechtigungen GRANT select (col1), insert (col1, col2) ON `testdb`.mytbl an 'test_user'@'%';

# Beschreibung des GRANT-Befehls:
super,select gibt die spezifischen Berechtigungen an, die erteilt werden sollen.
Mit „ON“ geben Sie an, für welche Bibliotheken und Tabellen die Berechtigungen gelten.
In *.* wird das * am Anfang verwendet, um den Datenbanknamen anzugeben, und das * am Ende, um den Tabellennamen anzugeben.
TO bedeutet, einem Benutzer Berechtigungen zu erteilen.
„test_user“@„%“ bedeutet Test_User-Benutzer. Auf „@“ folgt der eingeschränkte Host, der IP, IP-Segment, Domänenname und % sein kann. % bedeutet „überall“.

#Berechtigungen löschen;

# Zeigen Sie die Berechtigungen eines Benutzers an. Zeigen Sie Berechtigungen für „Testbenutzer“@„%“ an.

# Berechtigungen widerrufen, Löschung von „testdb“ widerrufen.* von „test_user“@„%“;

Die Berechtigungsverwaltung darf nicht außer Acht gelassen werden. Wir können Datenbankbenutzern nicht einfach aus Bequemlichkeit zu viele Berechtigungen erteilen. Insbesondere bei Produktionsdatenbanken sollte eine Berechtigungskontrolle durchgeführt werden. Es wird empfohlen, Programmbenutzern nur grundlegende Berechtigungen wie Hinzufügen, Löschen, Ändern und Abfragen zu erteilen und einzelnen Benutzern nur Abfrageberechtigungen zu erteilen.

Aus Sicherheitsgründen wird empfohlen, folgende Faustregeln zu beachten:

  • Erteilen Sie nur die minimal erforderlichen Berechtigungen, um zu verhindern, dass Benutzer schädliche Aktionen ausführen. Wenn der Benutzer beispielsweise nur eine Abfrage durchführen muss, ist nur die Auswahlberechtigung erforderlich.
  • Beschränken Sie beim Erstellen eines Benutzers den Anmeldehost des Benutzers, normalerweise auf ein bestimmtes IP- oder Intranet-IP-Segment.
  • Legen Sie für jeden Dienst einen eigenen Datenbankbenutzer an. Optimal ist es, wenn ein einzelner Benutzer nur eine einzige Datenbank bedienen kann.
  • Notieren Sie Informationen wie Benutzerberechtigungen jeder Datenbank rechtzeitig, um ein Vergessen zu vermeiden.
  • Bei externen Systemaufrufen sollte ein schreibgeschützter Benutzer konfiguriert werden und die Berechtigungen sollten auf die Tabelle oder Ansicht zugeschnitten sein.
  • Bereinigen Sie regelmäßig nicht benötigte Benutzer, entziehen Sie Berechtigungen oder löschen Sie Benutzer.

Oben finden Sie eine ausführliche Erläuterung der MySQL-Benutzerrechteverwaltung. Weitere Informationen zur MySQL-Benutzerrechteverwaltung finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Implementierung der MySQL-Benutzerrechteverwaltung
  • Detaillierte Erläuterung der Speicherverwaltung der MySQL InnoDB-Speicher-Engine
  • Detaillierte Erläuterung zum Erstellen, Aufrufen und Verwalten von MySQL-gespeicherten Prozeduren
  • Mysql praktische Übungen einfaches Bibliotheksverwaltungssystem

<<:  Bei Verwendung eines Bilds als Beschriftung funktioniert das for-Attribut im IE nicht

>>:  So erreichen Sie ein zentriertes Layout im CSS-Layout

Artikel empfehlen

202 kostenlose, hochwertige XHTML-Vorlagen (1)

Hier präsentiert 123WORDPRESS.COM den ersten Teil...

Tutorial zur Optimierung der Installationskonfiguration von MySQL 8.0.18

Die Installation, Konfiguration und Optimierung v...

HTML-Elemente (Tags) und ihre Verwendung

a : Gibt die Start- oder Zielposition eines Hyper...

Was genau passiert im Hintergrund, wenn Sie eine URL eingeben?

Als Softwareentwickler müssen Sie über ein vollst...

Detaillierte Schritte zur Installation eines Hadoop-Clusters unter Linux

Inhaltsverzeichnis 1. Erstellen Sie ein Hadoop-Ve...

Ein Vergleich zwischen dem href-Attribut und dem onclick-Ereignis des a-Tags

Lassen Sie uns zunächst über die Ausführungsreihe...

Detaillierte Erklärung der Linux-Less-Befehlsbeispiele

weniger Dateiname Datei anzeigen kleiner Dateinam...

Tutorial zur Installation von MYSQL8.0 auf Alibaba Cloud ESC

Öffnen Sie das Verbindungstool. Ich verwende Moba...

40 Schriftarten, empfohlen für berühmte Website-Logos

Wissen Sie, welche Schriftarten in den Logo-Desig...