Есть запрос типаMySQL Запрос, чтобы подсчитать, сколько баз данных принадлежит пользователю?
псевдокода:
SELECT databases FROM mysql.databases WHERE owner = 'myUser'
или любой запрос, который бы сделать эту работу?
Есть запрос типаMySQL Запрос, чтобы подсчитать, сколько баз данных принадлежит пользователю?
псевдокода:
SELECT databases FROM mysql.databases WHERE owner = 'myUser'
или любой запрос, который бы сделать эту работу?
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;
(Run как корень)
Оговорка: Там нет такого понятия, как "Владелец" для базы данных в MySQL, то над запросами будет отображаться информация о базах данных, к которой пользователь имеет доступ.
Насколько я могу судить, в MySQL отсутствует понятие «Владелец» базы данных или ее объектов, как в MS Access и MS SQL Server. Я предполагаю это из-за отсутствия поля «владелец» в любом месте системных таблиц mysql. (Http://www.wideman-one.com/gw/tech/mysql/perms/index.htm)
спасибо за ответ ... – Devrim
помощью:
SHOW DATABASES
Вы можете видеть только базы данных для который у вас есть какая-то привилегия, если у вас нет глобальной лицензии SHOW DATABASES.
Прочтите SHOW DATABASES Syntax, чтобы лучше понять, чего вы можете достичь.
Вы можете подсчитать, сколько баз данных связано с пользователем в базе данных mysql и таблице db. Это самое близкое, что я могу придумать для «владения» базы данных пользователем.
SELECT count(DISTINCT Db) FROM db WHERE User = 'someuser';
Вы запускаете sql, а затем видите владельца таблицы.
СКП является select * from information_schema. SCHEMA_PRIVILEGES where TABLE_SCHEMA='myUser'
это выглядит как ближе мы можем получить ... Пфф – Devrim
Это так близко, как вы можете получить без понятия «владелец ». BTW: Второй запрос, конечно, написан так грамотно, поскольку вам может понадобиться и внутренний запрос ... –