2012-06-03 4 views

Antwort

8
SELECT COUNT(*) FROM information_schema.SCHEMATA; 

(wie der Benutzer in Frage laufen)

SELECT count(*) FROM (
    SELECT DISTINCT TABLE_SCHEMA FROM information_schema.SCHEMA_PRIVILEGES WHERE GRANTEE LIKE("'USERNAME'%") GROUP BY TABLE_SCHEMA 
) AS baseview; 

(Ausführen als root)

Caveat: Es gibt nicht so etwas wie eine "Besitzer" für eine Datenbank in MySQL, die Obige Abfragen zeigen Informationen über die Datenbanken, auf die ein Benutzer zugreifen kann.

+0

dies wie am nächsten sieht man ... hmpf – Devrim

+0

Es ist so nah, wie Sie ohne den Begriff eines „Eigentümer bekommen ". BTW: Die zweite Abfrage ist natürlich so verbal geschrieben, da Sie vielleicht auch die innere Abfrage benötigen ... –

1

Soweit ich sagen kann, gibt es in MySQL kein Konzept von "Owner" der Datenbank oder ihrer Objekte, wie es in MS Access und MS SQL Server gibt. Ich vermute dies aus dem Fehlen von "Besitzer" Feld irgendwo in Mysql-Systemtabellen. (Http://www.wideman-one.com/gw/tech/mysql/perms/index.htm)

+0

danke für die Antwort ... – Devrim

0

Durch die Verwendung von:

SHOW DATABASES 

Sie können nur die Datenbanken sehen für Sie haben eine Art von Privileg, es sei denn, Sie haben das globale Privileg SHOW DATABASES.

Lesen Sie die SHOW DATABASES Syntax für ein besseres Verständnis von was Sie erreichen können.

1

Sie können zählen, wie viele Datenbanken einem Benutzer in der Datenbank MySQL und der Tabelle db zugeordnet sind. Dies ist das nächste, was ich von "Besitz" einer Datenbank durch einen Benutzer denken kann.

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