在 MySQL 中,可以通過查看 mysql.user 表中的數據記錄來查看相應的用戶權限,也可以使用 SHOW GRANTS 語句查詢用戶的權限。
mysql 數據庫下的 user 表中存儲著用戶的基本權限,可以使用 SELECT 語句來查看。SELECT 語句的代碼如下:
SELECT*FROM mysql.user;
要執行該語句,必須擁有對 user 表的查詢權限。
注意:新創建的用戶只有登錄 MySQL 服務器的權限,沒有任何其它權限,不能查詢 user 表。
除了使用 SELECT 語句之外,還可以使用 SHOW GRANTS FOR 語句查看權限。其語法格式如下:
SHOW GRANTS FOR'username'@'hostname';
其中,username 表示用戶名,hostname 表示主機名或主機 IP。
例 1 下面創建 testuser1 用戶并查詢權限,SQL 語句和執行過程如下:
mysql>CREATEUSER'testuser1'@'localhost';
Query OK,0rows affected (0.00 sec)
mysql>SHOW GRANTS FOR'testuser1'@'localhost';
+-----------------------------------------------+
| Grants for testuser1@localhost |
+-----------------------------------------------+
| GRANT USAGE ON *.* TO 'testuser1'@'localhost' |+-----------------------------------------------+1rowinset(0.00 sec)
其中,USAGE ON *.*表示該用戶對任何數據庫和任何表都沒有權限。
例 2 下面查詢 root 用戶的權限,代碼如下:
mysql>SHOW GRANTS FOR'root'@'localhost';
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
| GRANT PROXY ON ''@'' TO 'root'@'localhost' WITHGRANTOPTION|+---------------------------------------------------------------------+2rowsinset(0.00 sec)