2010-10-07 86 views
6

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

季米特里斯

回答

3

你可以让你访问数据库的名单搭配:

SHOW DATABASES; 

如果你想要得到的名单比你登录的用户进行一些其他的用户,您必须查询mysql.db表。

+0

感谢您的快速回答家伙。这正是我需要的! – Sfairas 2010-10-07 13:17:26

+0

缺少有关'mysql.db'查询应该是什么的信息。出于这个原因,我认为Lekensteyn的答案更完整。 – inspirednz 2018-03-07 01:32:57

9

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

假设您已经阅读访问mysql.db表,你可以使用:

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

这将返回结果集,与Host(例如localhost),Db(例如,somedatabase),User (例如dimitris)以及该数据库的权限(Select_priv,Update_priv等)

+0

谢谢。比接受的答案更完整的答案。投票。 – inspirednz 2018-03-07 01:33:19