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

Shell-Skripteinstellungen zum Verhindern von Brute-Force-SSH

Das Shell-Skript richtet die Zugriffskontrolle ei...

Installationsschritte der Ubuntu 20.04-Doppelpinyin-Eingabemethode

1. Chinesische Eingabemethode einrichten 2. Stell...

Vue + Element UI realisiert Ankerpositionierung

In diesem Artikelbeispiel wird der spezifische Co...

Vue+Element implementiert Dropdown-Menü mit lokaler Suchfunktion – Beispiel

brauchen: Das Backend gibt ein Array-Objekt zurüc...

So starten Sie mehrere MySQL-Datenbanken auf einem Linux-Host

Lassen Sie uns heute darüber sprechen, wie Sie vi...

Eine kurze Diskussion über 12 klassische Probleme in Angular

Inhaltsverzeichnis 1. Erklären Sie bitte, was die...

Prinzip des Linux-Nohup-Befehls und Beispielanalyse

nohup-Befehl Bei der Verwendung von Unix/Linux mö...

Vue implementiert rekursiv ein dreistufiges Menü

In diesem Artikelbeispiel wird der spezifische Co...

So entfernen Sie Wagenrücklaufzeichen aus Text in Linux

Machen Sie sich keine Sorgen, wenn Sie das Wagenr...

Verschiedene Arten von MySQL-Indizes

Was ist ein Index? Ein Index ist eine Datenstrukt...