server下载 - mysql5.7下载




如何获取MySQL用户帐户的列表 (10)

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命令行实用程序并可以浏览数据库。 现在我需要查看用户帐户的列表。 我怎样才能做到这一点?

我正在使用MySQL版本5.4.1


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