2012-06-03 101 views

回答

8
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; 

(潤根)

警告:有沒有這樣的事,作爲一個 「所有者」 對在MySQL數據庫中,以上查詢將顯示有關用戶可以訪問的數據庫的信息。

+0

這看起來像最近我們可以得到......哼 – Devrim

+0

這是接近你可以在沒有「所有者的概念得到」。順便說一句:第二個查詢當然寫得太過分了,因爲你可能需要內部查詢以及...... –

1

據我所知,數據庫或其對象的「所有者」在MySQL中沒有像MS Access和MS SQL Server中那樣的概念。我從mysql系統表中任何地方缺少「owner」字段來推測這一點。 (http://www.wideman-one.com/gw/tech/mysql/perms/index.htm)

+0

感謝您的回答... – Devrim

0

使用:

SHOW DATABASES 

你只能看到數據庫您擁有某種特權,除非您擁有全局特權SHOW DATABASES

閱讀SHOW DATABASES Syntax以更好地瞭解您可以實現的目標。

1

您可以計算mysql數據庫和db表中有多少數據庫與用戶關聯。這是我能想到的最接近用戶對數據庫的「所有權」。

SELECT count(DISTINCT Db) FROM db WHERE User = 'someuser';