9

有没有类似的查询

伪代码:

SELECT databases FROM mysql.databases WHERE owner = 'myUser'

或任何可以完成这项工作的查询?

4

6 回答 6

11
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 中没有数据库的“所有者”之类的东西,上述查询将显示有关用户具有某种访问权限的数据库的信息。

于 2012-06-03T00:46:28.617 回答
1

据我所知,在 MySQL 中没有数据库或其对象的“所有者”的概念,就像在 MS Access 和 MS SQL Server 中一样。我从 mysql 系统表中任何地方都缺少“所有者”字段来推测这一点。(http://www.wideman-one.com/gw/tech/mysql/perms/index.htm)

于 2012-06-03T00:42:51.530 回答
1

可以统计mysql数据库和db表中一个用户关联了多少个数据库。这是我能想到的最接近用户对数据库的“所有权”。

SELECT count(DISTINCT Db) FROM db WHERE User = 'someuser'; 
于 2012-06-03T00:51:20.470 回答
0

通过使用:

SHOW DATABASES

您只能查看您拥有某种权限的数据库,除非您拥有全局SHOW DATABASES权限。

阅读SHOW DATABASES 语法以更好地了解您可以实现的目标。

于 2012-06-03T00:44:37.380 回答
0

您运行 sql,然后您会看到表的所有者用户。

sql是select * from information_schema. SCHEMA_PRIVILEGES where TABLE_SCHEMA='myUser'

有关 information_schema.SCHEMATA 的详细信息

于 2014-09-04T08:19:44.843 回答
0

仅显示所有数据库使用

SELECT * FROM information_schema.SCHEMATA;
于 2021-09-20T04:12:20.913 回答