mySQL为用户显示数据库

时间:2010-10-07 12:47:15

标签: mysql

任何人都知道mySQL语法,以显示特定用户有权在mySQL数据库中查看的数据库名称?假设用户'dimitris'访问'localhost'的数据库,看到他有权选择,更新,插入等所有数据库的语法是什么?

迪米特里斯

2 个答案:

答案 0 :(得分:10)

对于当前登录的用户,您可以使用SHOW DATABASES;。但是,如果用户具有SHOW DATABASES;权限,他将能够查看所有数据库,即使他没有访问权限。 (reference

假设您已阅读mysql.db表的访问权限,则可以使用:

SELECT * FROM mysql.db WHERE User="dimitris";

这将返回结果集,其中包含Host(例如localhost),Db(例如somedatabase),User(例如{{1} })以及该数据库的权限(dimitrisSelect_priv等)

答案 1 :(得分:4)

您可以获取您有权访问的数据库列表:

SHOW DATABASES;

如果您想获取除您登录用户之外的其他用户的列表,您必须查询mysql.db表。