任何人都知道mySQL语法,以显示特定用户有权在mySQL数据库中查看的数据库名称?假设用户'dimitris'访问'localhost'的数据库,看到他有权选择,更新,插入等所有数据库的语法是什么?
迪米特里斯
答案 0 :(得分:10)
对于当前登录的用户,您可以使用SHOW DATABASES;
。但是,如果用户具有SHOW DATABASES;
权限,他将能够查看所有数据库,即使他没有访问权限。 (reference)
假设您已阅读mysql.db
表的访问权限,则可以使用:
SELECT * FROM mysql.db WHERE User="dimitris";
这将返回结果集,其中包含Host
(例如localhost
),Db
(例如somedatabase
),User
(例如{{1} })以及该数据库的权限(dimitris
,Select_priv
等)
答案 1 :(得分:4)
您可以获取您有权访问的数据库列表:
SHOW DATABASES;
如果您想获取除您登录用户之外的其他用户的列表,您必须查询mysql.db
表。