2012-06-03 18 views

Respuesta

8
SELECT COUNT(*) FROM information_schema.SCHEMATA; 

(ejecutarse como el usuario en cuestión)

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

(Ejecutar como root)

Advertencia: No hay tal cosa como un "propietario" de una base de datos en MySQL, la las consultas anteriores mostrarán información sobre las bases de datos a las que un usuario tiene acceso de tipo soem.

+0

esto se parece más cerca que podemos llegar ... hmpf – Devrim

+0

Es lo más cerca que se puede obtener sin la noción de un "propietario ". Por cierto: la segunda consulta, por supuesto, está escrita tan vagamente, ya que es posible que también necesites la consulta interna ... –

1

Por lo que puedo decir, no hay ningún concepto en MySQL de "Propietario" de la base de datos o sus objetos, como en MS Access y MS SQL Server. Supongo que esto se debe a la falta de campo de "propietario" en cualquier parte de las tablas del sistema de MySQL. (Http://www.wideman-one.com/gw/tech/mysql/perms/index.htm)

+0

gracias por la respuesta ... – Devrim

0

Mediante el uso de:

SHOW DATABASES 

Sólo puede ver las bases de datos para que tiene algún tipo de privilegio, a menos que tenga el privilegio global SHOW DATABASES.

Lea el SHOW DATABASES Syntax para una mejor comprensión de lo que puede lograr.

1

Puede contar cuántas bases de datos están asociadas con un usuario en la base de datos mysql y en la tabla db. Esto es lo más cercano que puedo pensar a la "propiedad" de una base de datos por parte de un usuario.

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