本教程將向您展示如何在MySQL資料庫中列出用戶。
MySQL顯示用戶:列出所有用戶
要印出所有MySQL中的所有用戶,您是不是想使用MySQL SHOW USERS
命令? 不幸的是,MySQL沒有類似SHOW DATABASES,SHOW TABLES等那樣的SHOW USERS
命令,因此列出MySQL資料庫伺服器中的所有用戶,可使用以下查詢:
SELECT
user
FROM
mysql.user;
在此語句中,我們從mysql
資料庫的user
表查詢用戶數據資訊。
要執行此查詢,您必須以管理員身份登錄到MySQL資料庫伺服器。
C:\Users\Administrator> mysql -u root -p
Enter password: ***********
mysql> use mysql;
Database changed
mysql> SELECT user FROM user;
以下顯示了以上查詢的輸出:
mysql> USE mysql
Database changed
mysql> SELECT user FROM user;
+------------+
| user |
+------------+
| rfc |
| superadmin |
| mysql.sys |
| root |
| super |
+------------+
5 rows in set (0.27 sec)
如上所見,在本地資料庫中有五個用戶。
要獲取有關用戶表的更多資訊,可以使用以下命令預覽其列:
DESC user;
例如,要顯示用戶和其他資訊(如主機,帳戶鎖定和密碼到期狀態),請使用以下查詢:
SELECT
user,
host,
account_locked,
password_expired
FROM
mysql.user;
執行上面查詢語句,得到以下結果 -
mysql> SELECT
user,
host,
account_locked,
password_expired
FROM
mysql.user;
+------------+-----------+----------------+------------------+
| user | host | account_locked | password_expired |
+------------+-----------+----------------+------------------+
| root | localhost | N | N |
| mysql.sys | localhost | Y | N |
| superadmin | % | N | N |
| super | localhost | N | N |
| rfc | % | N | N |
+------------+-----------+----------------+------------------+
5 rows in set
顯示當前用戶
要獲取有關當前用戶的資訊,請使用user()
函數,如以下語句所示:
mysql> SELECT user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
1 row in set
或者使用current_user()
函數:
mysql> SELECT current_user();
+----------------+
| current_user() |
+----------------+
| root@localhost |
+----------------+
1 row in set
在本示例的情況下,當前用戶是:root@localhost
。
顯示當前登錄的用戶
要列出當前登錄MySQL資料庫伺服器的所有用戶,請執行以下語句:
SELECT
user,
host,
db,
command
FROM
information_schema.processlist;
執行上面語句,得到以下結果 -
mysql> SELECT
user,
host,
db,
command
FROM
information_schema.processlist;
+------+-----------------+----------+---------+
| user | host | db | command |
+------+-----------------+----------+---------+
| root | localhost:51897 | NULL | Sleep |
| root | localhost:51898 | zaixiandb | Sleep |
| root | localhost:55313 | NULL | Query |
| root | localhost:52939 | mysql | Sleep |
+------+-----------------+----------+---------+
4 rows in set
正如使用可以看到的,目前有四個用戶登錄在MySQL資料庫中,一個是執行“查詢”狀態,其他三個是“睡眠”狀態。
在本教學中,您已經學習了如何通過查詢mysql
資料庫中的用戶表中的數據來列出MySQL資料庫伺服器中的所有用戶。