powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / mysql и приоритет разрешений
3 сообщений из 3, страница 1 из 1
mysql и приоритет разрешений
    #38661411
skeletor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Не могу до конца понять, как применяются разрешения. Опишу ситуацию. Есть такой набор разрешений:
Код: sql
1.
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES, EXECUTE ON `mydb%`.* TO 'user'@'192.168.1.1'


Нужно дать дополнительно права на базу mydb_test. Даю:
Код: sql
1.
GRANT CREATE, DROP ON mydb_test.* TO 'user'@'192.168.1.1'

. Конечно делаю flush privileges
В итоге имеем следующее: при выполнении drop ему выдаёт
Код: sql
1.
... DROP command denied to user 'user'@'192.168.1.1'


При этом частично на в другом приложении начали сыпаться ошибки для базы mydb_test :
Код: sql
1.
... INSERT command denied to user 'user'@'192.168.1.1'


При детальном рассмотрении, пришёл к выводу, что mysql игнорирует гранты CREATE, DROP, выданные позже на базу, а использует только гранты от mydb%. По какой-то причине другому приложению наоборот, выдало только гранты CREATE, DROP и больше никаких других.

Как именно происходит выбор пермишинов в mysql? До первого совпадения? Или как-то по хитрому?

PS. База боевая и просто так тестировать пермишины не могу.
...
Рейтинг: 0 / 0
mysql и приоритет разрешений
    #38661533
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skeletor,

права в мускле.

есть таблица прав юзера - с колонками create insert .... и вкаждой колонке либо да либо нет.
(можно / нельзя)

есть таблица прав на отдельную базу для данного юзера, на отдельную таблицу, на отдельный столбик.

как происходит выборка прав
построения списка всех прав для заданого юзера...получиться тчото типа

для юзера вася
к чему привелегии
юзер хост база таблица поле вставка удаление создание ....
юзер да да нет
юзер б1 да нет не
юзер б1 т2 нет нет нет
...........

и когда ему надо проверить право на доступ скажем к полю п2 таблицы т1 базы б4 для юзера1 с хостом5

он ищет из этой кучи самую подходящую строчку(которая точнее всего...совпадение по большему числу критериев. тоесть если подходят две строки, одня для юзер1 хост5 , другая для юзер1 хост5 база б4 - то вторая больше подходит)

и имено эти права есть актуальные.

итого
если на уровне базы можно изменять, а на уровне таблицы этого права нету, то значит менять в базе можно, кроме этой таблицы.
если в базе нельзя альтер, но для таблицы т2 можно, значит везде нельзя но для одной таблицы можно.

и того, создав два права добавочных для уровня базы, ты для этой же базы запретил все остальное.

продублируй на базу что можно, на всём сервере

это всё что мускл сможет нарыть
...
Рейтинг: 0 / 0
mysql и приоритет разрешений
    #38661581
skeletor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Непонятно почему тогда выдавало ошибку DROP command denied to user 'user'@'192.168.1.1' на таблицу из базы mydb.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / mysql и приоритет разрешений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]