本教學將向您展示如何在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 | yiibaidb | Sleep |
| root | localhost:55313 | NULL | Query |
| root | localhost:52939 | mysql | Sleep |
+------+-----------------+----------+---------+
4 rows in set
正如使用可以看到的,目前有四個使用者登入在MySQL資料庫中,一個是執行「查詢」狀態,其它三個是「睡眠」狀態。
在本教學中,您已經學習了如何通過查詢mysql
資料庫中的使用者表中的資料來列出MySQL資料庫伺服器中的所有使用者。