The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  правила/FAQ  поиск  регистрация  вход/выход  слежка  RSS
"Как получить фильтрованный вывод о правах пользователя?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии (MySQL)
Изначальное сообщение [ Отслеживать ]

"Как получить фильтрованный вывод о правах пользователя?"  +/
Сообщение от CHIM email(ok) on 12-Сен-17, 11:15 
Мучаюсь над проблемой получения информации о том есть ли права у пользователя на определённые команды к определённым таблицам. Например есть пользователь user и у него есть права на SELECT в таблице table1, а так же есть права на SELECT, DELETE в таблице table2. Как определить есть ли у пользователя права для удаления конкретно для таблицы table2?
Если использовать команду: "SHOW GRANTS FOR user; " то выводятся все привилегии пользователя, что в свою очередь трудно автоматически обработать(точнее я не представляю как из меняющегося вывода выбрать DELETE который будет относиться именно к таблице table2 и не перепутать с другими таблицами.)
Если использовать команду: "SELECT * FROM information_schema.user_privileges;"  то выводятся не все привилегии(в моём случае выводится только одна привилегия "USAGE"),
Если использовать команду "USE information_schema; SELECT TABLE_NAME, PRIVILEGES FROM COLUMNS;" то привилегии выводятся только те, которые совпадают со списком "select,insert,update,references" т.е. в моём случае DELETE здесь нет.
Неужели никак нельзя узнать есть ли определённые права у пользователя?
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Как получить фильтрованный вывод о правах пользователя?"  +/
Сообщение от ACCA (ok) on 12-Сен-17, 13:33 
Однострочником.

$ mysql --batch -u root -p --execute="SHOW GRANTS FOR user;" | grep table2


MySQL - дeбильная база, не занимайся в ней сложностями. Если появились такие вопросы - время уходить на что-то другое.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Как получить фильтрованный вывод о правах пользователя?"  +/
Сообщение от CHIM email(ok) on 12-Сен-17, 14:41 
> Однострочником.
> $ mysql --batch -u root -p --execute="SHOW GRANTS FOR user;" | grep
> table2
> MySQL - дeбильная база, не занимайся в ней сложностями. Если появились такие
> вопросы - время уходить на что-то другое.

1. А есть ли возможность сделать это на PHP  с правами пользователя у которого я хочу проверить права?
2. И ещё вопрос. В postgresql это такую выборку проще делать?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Как получить фильтрованный вывод о правах пользователя?"  +/
Сообщение от ACCA (ok) on 12-Сен-17, 17:28 
> 1. А есть ли возможность сделать это на PHP  с правами
> пользователя у которого я хочу проверить права?

Попробуй, должно сработать. В комментариях в документации v5.7 по SHOW GRANTS есть пример на Perl. PDO цельнотянутый с DBI, так что переведёшь и на PHP.

> 2. И ещё вопрос. В postgresql это такую выборку проще делать?

SELECT has_table_privilege('joe', 'table2', 'DELETE');

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру