Wie erkennt man alle Benutzer, die auf eine Datenbank zugreifen können?
19
Stellen Sie als Administrator (in der Regel als root) eine Verbindung zur mysql-Instanz her und geben Sie den folgenden Befehl ein ...
select user from mysql.db where db='DB_NAME';
select user from mysql.db
ohne Qualifikation gibt ebenfalls 2 leere Zeilen zurück.Die Antwort von user79644 ruft die Benutzer mit Berechtigungen auf Datenbankebene ab, vermisst jedoch Benutzer mit Berechtigungen auf Tabellen-, Spalten- oder Prozedurebene. Verwenden Sie die folgenden Anweisungen, um alle zu finden:
Zumindest in MySQL 5.5 scheint es so zu sein, als würden Sie mit Berechtigungen auf Spaltenebene über Berechtigungen auf Tabellenebene verfügen. Wenn Sie über Berechtigungen auf Tabellenebene verfügen, bedeutet dies nicht, dass Sie über Berechtigungen auf Datenbankebene verfügen. Nicht sicher über Berechtigungen auf Prozedurebene.
quelle
ERROR 1046 (3D000): No database selected
mysql
Datenbank verwenden sollten. Dort werden alle von MySQL verwendeten Daten gespeichert. Entweder geben Sie den BefehlUSE mysql;
von den Datenbanknamen der Tabellennamen hinzufügen, wieFROM mysql.db
oderFROM mysql.tables_priv
quelle
Beachten Sie, dass MySQL
GRANT
für Datenbanken Platzhalterzeichen enthalten kann . Dies muss berücksichtigt werden, indemLIKE
in der Abfrage verwendet wird:quelle