mySQL为用户显示数据库

Sfa*_*ras 8 mysql

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

季米特里斯

Lek*_*eyn 10

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

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

SELECT * FROM mysql.db WHERE User="dimitris";
Run Code Online (Sandbox Code Playgroud)

这将返回一个结果集,用Host(例如localhost), Db(例如somedatabase), User(例如dimitris)和特权为该数据库(Select_priv,Update_priv,等)


rek*_*o_t 5

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

SHOW DATABASES;
Run Code Online (Sandbox Code Playgroud)

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