是否有类似
的查询伪码:
SELECT databases FROM mysql.databases WHERE owner = 'myUser'
或任何做这项工作的查询?
答案 0 :(得分:10)
SELECT COUNT(*) FROM information_schema.SCHEMATA;
(以问题中的用户身份运行)
SELECT count(*) FROM (
SELECT DISTINCT TABLE_SCHEMA FROM information_schema.SCHEMA_PRIVILEGES WHERE GRANTEE LIKE("'USERNAME'%") GROUP BY TABLE_SCHEMA
) AS baseview;
(以root身份运行)
警告:MySQL中的数据库没有“所有者”之类的东西,上述查询将显示有关用户具有访问权限的数据库的信息。
答案 1 :(得分:1)
据我所知,MySQL在数据库或其对象的“所有者”中没有概念,就像在MS Access和MS SQL Server中一样。我推测这是因为mysql系统表中缺少“所有者”字段。 (http://www.wideman-one.com/gw/tech/mysql/perms/index.htm)
答案 2 :(得分:1)
您可以计算mysql数据库和db表中与用户关联的数据库的数量。这是我能想到的最接近用户对数据库的“所有权”。
SELECT count(DISTINCT Db) FROM db WHERE User = 'someuser';
答案 3 :(得分:0)
使用:
SHOW DATABASES
除非您拥有全局SHOW DATABASES权限,否则您只能看到您拥有某种特权的数据库。
阅读SHOW DATABASES Syntax,以便更好地了解您可以取得的成就。
答案 4 :(得分:0)
您运行sql,然后您会看到表的所有者用户。
sql是select * from information_schema. SCHEMA_PRIVILEGES where TABLE_SCHEMA='myUser'