Автор Тема: Дать пермишины к базе, но запретить к отдельным таблицам  (Прочитано 5424 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн volod

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 95
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Здравствуйте.

Задача такова: нужно дать некие привилегии для некого пользователя на некую бд, и вместе с тем запретить на пару-тройку таблиц с той же базы.
Первый этап завершился успешно: сождал пользоватиеля только с одним SELECT-грантом.
Далее нужно запретить ему смотреть даные с таблицы xyz.
Пишу:
revoke SELECT on mydb.xyz from user_viewer.
На что получил от мускл по шее с сопровождением, что "нет такого гранта для такого юзера".
Далее пробовал сделать прямой селект в mysq.tables_priv, но то ли с синтаксисом че-то напутал, то ли еще кой злой духоглюк пал на никчемный мускл, так и не пошло.
к стати, мускл после проведенных операций я рестартовал.

Есть варианты?

Оффлайн tserbis

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 496
  • +0/-0
  • 0
    • Просмотр профиля
Хм... Быстро в мане не нашёл.
Если операция разовая, - не давай на базу, а дай на разрешённые таблицы отдельно на каждую.

Оффлайн volod

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 95
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не-е, так не поидет. Там таблиц -- туева хуча, да и еще их все на 2 умножить нужно будет (для локал хоста и других хостов).
:(

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Никак.
Только давать привилегии на _каждую_ таблицу.
На Машине Тьюринга далеко не уедешь.

Оффлайн volod

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 95
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не верю я. В мануале ж написано (ну вот для ревоук):
REVOKE priv_type [(column_list)] [, priv_type [(column_list)] ...]
    ON {tbl_name | * | *.* | db_name.*}
    FROM user_name [, user_name ...]
и дальше также, что:
Уровень таблицы
[Привилегии таблицы применяются ко всем столбцам указанной таблицы. Эти привилегии хранятся в таблице mysql.tables_priv. ]

То есть предоставляет мскл способы регулирования на том уровне, кой мне нужен. Другое  дело, у меня вот не вышло это сделать, поэтому и спрашиваю.
Спрашиваю, да-да, так что отвечайте, господа! :)

Оффлайн tserbis

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 496
  • +0/-0
  • 0
    • Просмотр профиля
И ты видел в таблицах базы mysql permissions на отдельные таблицы после того как делал grant на всю базу?

Оффлайн volod

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 95
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не-е-е, но мускл же поддерживает привилегию. Мой наполеоновский план был таков: дам-ка я общие привилегии на дазу баных, а потом уточню их с для нужных таблиц. Вся красота положения в том, что никие таблици мне  НЕ нужно даже показывать, вот и попробовал сделать \'grant usage on horror_table on dummy_luser\'. Все вроде нормально, и флуш сделал, и перезагрузил -- а не идет. Ну вот хоть головой о стену -- не идет.
Может, хоть кто знает, где вот, ну просто примеры в чистом тексте, как это все делается? А то капец какой-то. Глаз видит, а зуб не ймет. :(

Оффлайн tserbis

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 496
  • +0/-0
  • 0
    • Просмотр профиля
То есть ты решил, что такая возможность должна быть - и всё, да?
И ответ тебя устраивает единственный - как, да?
Жаль. Совет на прощание - послушай fidget (она в курсе).

Оффлайн volod

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 95
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Меня не может устроить просто ответ "нет". Хоть чуть-чуть розяснений нужно. А если их нет, то я просто не имею права воспринимать версию, как правильную. Понимаешь? Моя версия подкрепляется аргументами, что мскл располагает привилегией usage, мскл позволяет накладывать привилегии на отдельные таблицы, значит, на некую таблицу можно наложить привилегию usage. Беда в том, что это у меня отчего-то не фиксировалось. Отячего -- понятия не имею.
Так что думаю, что это сделать можно. а если нет, пожалуйста, хоть в двух словах, почему "нет".
спасибо.

Оффлайн fidget

  • Непоседа
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 607
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Цитировать
volod:
 а если нет, пожалуйста, хоть в двух словах, почему "нет".

потому что такой возможности нет. В двух словах это звучит как "as designed".
Можно делать REVOKE только для тех привилегий которые ты давал.
На Машине Тьюринга далеко не уедешь.

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28