ändern - mysql user rechte anzeigen




Wie bekomme ich eine Liste von MySQL Benutzerkonten? (10)

Ich benutze das MySQL Kommandozeilenprogramm und kann durch eine Datenbank navigieren. Jetzt muss ich eine Liste der Benutzerkonten sehen. Wie kann ich das machen?

Ich benutze MySQL Version 5.4.1 .


Die mysql.db-Tabelle ist möglicherweise wichtiger beim Bestimmen von Benutzerrechten. Ich denke, ein Eintrag darin wird erstellt, wenn Sie eine Tabelle im GRANT-Befehl erwähnen. In meinem Fall zeigte die mysql.users-Tabelle keine Berechtigungen für einen Benutzer, als dieser offensichtlich eine Verbindung herstellen und auswählen konnte usw.

mysql> select * from mysql.db;
mysql> select * from db;
+---------------+-----------------+--------+-------------+-------------+-------------+--------
| Host          | Db              | User   | Select_priv | Insert_priv | Update_priv | Del...

Ein Benutzerkonto umfasst den Benutzernamen und den Zugriff auf der Host-Ebene.

Daher ist dies die Abfrage, die alle Benutzerkonten enthält

SELECT CONCAT(QUOTE(user),'@',QUOTE(host)) UserAccount FROM mysql.user;

Ich benutze dies, um die Benutzer zu sortieren, so dass die erlaubten Hosts leichter zu erkennen sind:

mysql> SELECT User,Host FROM mysql.user ORDER BY User,Host;

Ich fand seine eine nützlichere, da es zusätzliche Informationen über DML- und DDL-Berechtigungen bietet

SELECT user, Select_priv, Insert_priv , Update_priv, Delete_priv, 
       Create_priv, Drop_priv, Shutdown_priv, Create_user_priv 
FROM mysql.user;

Melden Sie sich bei mysql als root an und geben Sie die folgende Abfrage ein

select User from mysql.user;

+------+
| User |
+------+
| amon |
| root |
| root |
+------+

MySQL speichert die Benutzerinformationen in einer eigenen Datenbank. Der Name der Datenbank ist MySQL . In dieser Datenbank befinden sich die Benutzerinformationen in einer Tabelle, einem Dataset, einem benannten user . Wenn Sie sehen möchten, welche Benutzer in der MySQL-Benutzertabelle eingerichtet sind, führen Sie den folgenden Befehl aus:

SELECT User, Host FROM mysql.user;

+------------------+-----------+
| User             | Host      |
+------------------+-----------+
| root             | localhost |
| root             | demohost  |
| root             | 127.0.0.1 |
| debian-sys-maint | localhost |
|                  | %         |
+------------------+-----------+

Verwenden Sie diese Abfrage:

SELECT User FROM mysql.user;

Welches gibt eine Tabelle so aus:

+-------+
| User  |
+-------+
| root  |
+-------+
| user2 |
+-------+

Wie Matthew Scharley in den Kommentaren zu dieser Antwort ausführt , können Sie nach der Spalte " User gruppieren, wenn Sie nur eindeutige Benutzernamen sehen möchten.


Wenn Sie sich auf die tatsächlichen MySQL-Benutzer beziehen, versuchen Sie Folgendes:

select User from mysql.user;

$>  mysql -u root -p -e 'Select user from mysql.user' > allUsersOnDatabase.txt

Bei der Ausführung dieses Befehls in der Linux-Eingabeaufforderung wird zunächst nach dem Kennwort für mysql root-Benutzer gefragt. Wenn das richtige Kennwort angegeben wird, werden alle Datenbankbenutzer in der Textdatei gedruckt.


SELECT * FROM mysql.user;

Es ist ein großer Tisch, also möchten Sie vielleicht wählerischer sein, welche Felder Sie wählen.







mysql5