Общие > Базы данных
Дать пермишины к базе, но запретить к отдельным таблицам
volod:
Здравствуйте.
Задача такова: нужно дать некие привилегии для некого пользователя на некую бд, и вместе с тем запретить на пару-тройку таблиц с той же базы.
Первый этап завершился успешно: сождал пользоватиеля только с одним SELECT-грантом.
Далее нужно запретить ему смотреть даные с таблицы xyz.
Пишу:
revoke SELECT on mydb.xyz from user_viewer.
На что получил от мускл по шее с сопровождением, что "нет такого гранта для такого юзера".
Далее пробовал сделать прямой селект в mysq.tables_priv, но то ли с синтаксисом че-то напутал, то ли еще кой злой духоглюк пал на никчемный мускл, так и не пошло.
к стати, мускл после проведенных операций я рестартовал.
Есть варианты?
tserbis:
Хм... Быстро в мане не нашёл.
Если операция разовая, - не давай на базу, а дай на разрешённые таблицы отдельно на каждую.
volod:
Не-е, так не поидет. Там таблиц -- туева хуча, да и еще их все на 2 умножить нужно будет (для локал хоста и других хостов).
:(
fidget:
Никак.
Только давать привилегии на _каждую_ таблицу.
volod:
Не верю я. В мануале ж написано (ну вот для ревоук):
REVOKE priv_type [(column_list)] [, priv_type [(column_list)] ...]
ON {tbl_name | * | *.* | db_name.*}
FROM user_name [, user_name ...]
и дальше также, что:
Уровень таблицы
[Привилегии таблицы применяются ко всем столбцам указанной таблицы. Эти привилегии хранятся в таблице mysql.tables_priv. ]
То есть предоставляет мскл способы регулирования на том уровне, кой мне нужен. Другое дело, у меня вот не вышло это сделать, поэтому и спрашиваю.
Спрашиваю, да-да, так что отвечайте, господа! :)
Навигация
Перейти к полной версии