Как mysql grant работает с несколькими подстановочными знаками и более конкретными инструкциями предоставления? - PullRequest
0 голосов
/ 29 января 2019

У меня есть несколько заявлений о предоставлении привилегий на уровне БД для определенного пользователя.Если я выполню show grants, я увижу:

GRANT USAGE ON *.* TO 'user1'@'%'
GRANT INSERT, UPDATE, DELETE, CREATE ON `db1`.* TO 'user1'@'%'
GRANT INSERT, UPDATE, DELETE, CREATE ON `db_with_pattern_\_%`.* TO 'user1'@'%'
GRANT SELECT ON *.* TO 'user1'@'%'

Я ожидаю, что последняя строка предоставит user1 SELECT привилегии для всех схем, а предыдущие строки предоставят INSERT, UPDATE, DELETE, CREATE для определенных схем, а значит и из-за последней строки предоставляет SELECT на всех схемах.Но это не работает.Однако, когда я пытаюсь выбрать из какой-либо таблицы db1 или db_with_pattern_\_% MySQL throw select denied for user user1, user1 все еще может запускать select из любой другой схемы из моей БД.

Я просмотрел grant-privileges раздел из документации по MySQL, и он не сталкивался с какими-либо разъяснениями об ограничительных привилегиях подстановки, когда существуют более конкретные операторы GRANT.

Должен ли я каждый раз указывать явно SELECT при использовании конкретной схемы в grantзаявления или я что то делаю неправильно?

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