Die MySQL-Sicherheits-Datenbank

Wenn MySQL installiert ist, erstellt es automatisch eine Datenbank namens mysql. Alle Informationen verwendet, um Ihre Daten zu schützen, ist in dieser Datenbank gespeichert sind, einschließlich Kontonamen, Host-Namen, Passwörter und Berechtigungen.

Berechtigungen werden in Spalten gespeichert. Das Format der einzelnen Spaltenname ist Privileg_priv, in welchem Privileg ist ein bestimmtes Konto Privileg. Zum Beispiel enthält die Spalte ÄNDERN Privilegien benannt alter_priv. Der Wert in jeder Spalte Privileg ist Y oder N, Ja oder Nein bedeutet.

So zum Beispiel in der Benutzertabelle, gäbe es eine Reihe für ein Konto sein und eine Spalte für alter_priv. Wenn das Konto Feld alter_priv enthält Y, Das Konto kann verwendet werden, um ein ausführen ÄNDERN Erklärung. Ob alter_priv enthält N, das Konto nicht Privileg ein auszuführen ÄNDERN Erklärung.

Das mysql Datenbank enthält die folgenden Tabellen, die Privilegien zu speichern:


  • Benutzer Tabelle: In dieser Tabelle werden Berechtigungen, die auf alle Datenbanken und Tabellen gelten. Es enthält eine Zeile für jeden gültigen Account, der die Spalten enthält Benutzername, Host-Namen, und Passwort. Der MySQL-Server lehnt eine Verbindung für ein Konto, das nicht in dieser Tabelle nicht vorhanden ist.

  • db Tabelle: In dieser Tabelle werden Berechtigungen, die auf eine bestimmte Datenbank anzuwenden. Es enthält eine Zeile für die Datenbank, die Privilegien zu einem Kontonamen und einen Hostnamen gibt. Das Konto muss in der Benutzertabelle existieren für die Berechtigungen erteilt werden. Vorrechte, die in der Benutzertabelle angegeben sind außer Kraft setzen Berechtigungen in dieser Tabelle.

    Wenn beispielsweise die Benutzer Tabelle hat eine Zeile für das Konto Konstrukteur das gibt EINFÜGEN Privilegien, Konstrukteur Einfügen in allen Datenbanken. Wenn eine Zeile in der db Tabelle zeigt, N für EINFÜGEN für die Konstrukteur Konto in der PetCatalog Datenbank, die Benutzer Tabelle überstimmt es, und Konstrukteur kann in dem Einsatz PetCatalog Datenbank.

  • Gastgeber Tabelle: Diese Tabelle steuert den Zugriff auf eine Datenbank, in Abhängigkeit von dem Host. Das Gastgeber Tabelle arbeitet mit der db Tabelle. Wenn eine Zeile in der db Tabelle hat ein leeres Feld für den Host, prüft MySQL die Host-Tabelle, ob das zu sehen db hat eine Reihe. Auf diese Weise können Sie den Zugriff auf eine zulassen db von einigen Hosts, aber nicht von den anderen.

    Zum Beispiel: Angenommen, Sie zwei Datenbanken: DB1 und db2. Das DB1 Datenbank hat sensible Informationen, so dass Sie wollen nur bestimmte Leute, es zu sehen. Das db2 Datenbank enthält Informationen, die Sie alle sehen wollen. Wenn Sie eine Zeile in der db Tabelle für DB1 mit einem leeren Gastgeber Feld können Sie zwei Zeilen für DB1 in dem Gastgeber Tabelle.

    Eine Zeile kann alle Berechtigungen für Benutzer geben, von einem bestimmten Host verbinden, während eine andere Reihe Privilegien für Benutzer verweigern können aus einem beliebigen anderen Host verbinden.

  • tables_priv Tabelle: In dieser Tabelle werden Berechtigungen, die auf spezifische Tabellen gelten.

  • columns_priv Tabelle: In dieser Tabelle werden Berechtigungen, die auf bestimmte Spalten anwenden.

Sie können die Tabellen zu sehen und ändern in mysql direkt, wenn Sie ein Konto verwenden, das über die erforderlichen Berechtigungen hat. Sie können SQL-Abfragen verwenden, wie zum Beispiel WÄHLEN, EINFÜGEN, und AKTUALISIEREN. Wenn Sie MySQL über Ihren Arbeitgeber sind den Zugriff auf einen Client oder einen Web-Hosting-Unternehmen, werden Sie wahrscheinlich nicht über ein Konto mit den erforderlichen Berechtigungen verfügen.

» » » Die MySQL-Sicherheits-Datenbank