SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 04.06.2014 13:39:30

skeletor
Участник
Зарегистрирован: 02.12.2011
Сообщений: 5

mysql и приоритет разрешений

Всем привет.
Не могу до конца понять, как применяются разрешения. Опишу ситуацию. Есть такой набор разрешений:

Код:

GRANT SELECT, INSERT, UPDATE, DELETE, CREATE TEMPORARY TABLES, EXECUTE ON `mydb%`.* TO 'user'@'192.168.1.1'

Нужно дать дополнительно права на базу mydb_test. Даю:

Код:

GRANT CREATE, DROP ON mydb_test.* TO 'user'@'192.168.1.1'

. Конечно делаю flush privileges
В итоге имеем следующее: при выполнении drop ему выдаёт

Код:

... DROP command denied to user 'user'@'192.168.1.1'

При этом частично на в другом приложении начали сыпаться ошибки для базы mydb_test :

Код:

... INSERT command denied to user 'user'@'192.168.1.1'

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

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

PS. База боевая и просто так тестировать пермишины не могу.

Неактивен

 

#2 08.06.2014 17:41:17

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: mysql и приоритет разрешений

В документации нет информации о приоритетах обработки, поэтому если такое поведение можно подтвердить простым тестом, пишите на bugs.mysql.com.

Подчеркивание в имени заменяет любой символ. Попробуйте GRANT CREATE, DROP ON `mydb\_test`.*, чтобы второй GRANT не был шаблоном.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson