小智 21
以管理员用户身份(通常以 root 用户身份)连接到 mysql 实例并给出以下命令...
select user from mysql.db where db='DB_NAME';
Run Code Online (Sandbox Code Playgroud)
Sco*_*rth 14
user79644 的回答获取具有数据库级权限的用户,但会错过只有表级、列级或过程级权限的用户。要找到所有这些,请使用以下语句:
SELECT user,host FROM db WHERE db='name';
SELECT user,host FROM tables_priv WHERE db='name';
SELECT user,host FROM columns_priv WHERE db='name';
SELECT user,host FROM procs_priv WHERE db='name';
Run Code Online (Sandbox Code Playgroud)
至少在 MySQL 5.5 中,似乎拥有列级权限意味着您拥有表级权限。拥有表级权限并不意味着您拥有数据库级权限。不确定过程级权限。
sil*_*iud 10
# current users that access the db
mysql> show processlist;
+-----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+------+-----------+------+---------+------+-------+------------------+
| 214 | root | localhost | NULL | Query | 0 | NULL | show processlist |
+-----+------+-----------+------+---------+------+-------+------------------+
# who can access what at anytime and his privilege level
mysql> show grants;
+---------------------------------------------------------------------+
| Grants for root@localhost |
+---------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
+---------------------------------------------------------------------+
# what privileges are available
mysql> show privileges;
Run Code Online (Sandbox Code Playgroud)