任何人都知道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,等)
您可以获得您有权访问的数据库列表:
SHOW DATABASES;
Run Code Online (Sandbox Code Playgroud)
如果您想获取除您登录的用户之外的其他用户的列表,您必须查询该mysql.db表。