win7 - mysql workbench




如何獲取MySQL用戶帳戶的列表 (10)

我正在使用MySQL命令行實用程序並可以瀏覽​​數據庫。 現在我需要查看用戶帳戶的列表。 我怎樣才能做到這一點?

我正在使用MySQL版本5.4.1


MySQL將用戶信息存儲在自己的數據庫中。 數據庫的名稱是MySQL 。 在該數據庫中,用戶信息位於一個表中,一個數據集,名為user 。 如果您想查看MySQL用戶表中設置的用戶,請運行以下命令:

SELECT User, Host FROM mysql.user;

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

mysql.db表在確定用戶權限時可能更重要。 我認為如果你在GRANT命令中提到一個表格,就會創建一個條目。 在我的情況下,mysql.users表顯示用戶顯然無法連接和選擇等權限。

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

使用此查詢:

SELECT User FROM mysql.user;

哪個會輸出這樣的表格:

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

正如Matthew Scharley 在對這個答案的評論中指出的那樣,如果您只想看到唯一的用戶名,您可以按User列進行分組。


如果您指的是實際的MySQL用戶,請嘗試:

select User from mysql.user;

我使用這種方式對用戶進行排序,因此允許的主機更容易被發現:

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

我發現他更有用,因為它提供了有關DML和DDL權限的其他信息

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

用戶帳戶包括用戶名和主機級訪問權限。

因此,這是提供所有用戶帳戶的查詢

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

這裡顯示唯一用戶列表。

SELECT DISTINCT User FROM mysql.user;

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

在linux提示符下執行這個命令會先詢問mysql root用戶的密碼,在提供正確的密碼後它會把所有的數據庫用戶打印到文本文件中。


SELECT * FROM mysql.user;

這是一張很大的桌子,所以你可能想要更多地選擇你選擇的領域。





mysql5