Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > вопрос по привилегиям


Автор: bobanman 23.1.2016, 13:00
Всем доброго времени суток. 

Вопрос следующий:

есть такая замечательная штука в 

Код

show grants;


Можно ли результат этой команды средствами sql как-то использовать в запросах? 

Ну типа: 
Код

select * from (show grants);


Так не работает, но может кто-то подскажет как можно выкрутить?

Автор: tzirechnoy 23.1.2016, 15:02
Руками собирать из mysql.user, mysql.db, mysql.tables_priv, mysql.columns_priv;

Не, то есть можно функцыю, конечно, написать, но по-моему разобраться в таблицах проще чем разобрать текст, выдаваемый show grants

Автор: bobanman 23.1.2016, 17:24
Цитата(tzirechnoy @ 23.1.2016,  15:02)
Руками собирать из mysql.user, mysql.db, mysql.tables_priv, mysql.columns_priv;

Не, то есть можно функцыю, конечно, написать, но по-моему разобраться в таблицах проще чем разобрать текст, выдаваемый show grants

Создал юзера:

Код

CREATE USER 'test_user' IDENTIFIED BY 'test_user';

 
Захожу под этим юзером, и выполняю запрос:

Код

SELECT Select_priv FROM mysql.user where user='test_user';

 
Вываливается:

Код

Error Code: 1142. SELECT command denied to user 'test_user'@'localhost' for table 'user'


А мне нужно получить Y или N. Как это сделать при подключении именно этим юзером?

А текст из show grants можно все-таки как-то достать?

Автор: tzirechnoy 24.1.2016, 11:49
Цитата
Вываливается:


А, хм. Ну да. Теперь база mysql пользователям закрыта, а вся информацыя отдаётся спецыальным движком в базе INFORMATION_SCHEMA.
То есть смотри в information_schema.user_privileges, information_schema.schema_privileges, information_schema.table_privileges, information_schema.column_privileges

Цитата
А текст из show grants можно все-таки как-то достать?


Блин, долго пробовал, теперь сдаюсь! Видимо, никак. Разработчики MySQL какие-то особенно отборные дебилы -- поскольку настолько убогие stored functions спецыально ведь не сделаешь, это талант нужэн.

Автор: bobanman 25.1.2016, 12:44
Цитата

То есть смотри в information_schema.user_privileges, information_schema.schema_privileges, information_schema.table_privileges, information_schema.column_privileges


Спасибо, будем посмотреть.

Цитата

Разработчики MySQL какие-то особенно отборные дебилы -- поскольку настолько убогие stored functions спецыально ведь не сделаешь, это талант нужэн.


 smile 

Автор: bobanman 25.1.2016, 16:16
Всем доброго времени суток. 

А есть ли в MySql табличка, в которой храниться список возможных привилегий, ну там не назначенных кому-то, а просто список привилегий, которые бывают.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)