У меня есть пользователь, который должен иметь SELECT
доступ ко всем таблицам в схеме, кроме одной единственной таблицы.
Я пробовал:
grant select on schemaname.* to 'username'@'%';
revoke select on schemaname.forbiddentable from 'username'@'%';
Однако второй оператор возвращает:
Error 1147 - (There is no such grant defined on schemaname.forbiddentable for user... )
Поскольку эта ошибка возникает, потому что MySQL сохраняет GRANT
как *
, а не как список лиц GRANT
s, I думал о предоставлении доступа к каждой отдельной таблице, кроме forbiddentable
. Но тогда мне нужно было бы вручную предоставить доступ к каждой новой таблице, которая создается после этого, верно?
Есть ли способ отозвать доступ только к schemaname.forbiddentable
и продолжить доступ ко всем остальным?
Если нет, есть ли хорошая практика, чтобы данные schemaname.forbiddentable
были недоступны для этого пользователя?