#tsql #permissions #sql-server-2008-r2
#tsql #разрешения #sql-server-2008-r2
Вопрос:
В MS-SQL Server 2008 R2 есть ли способ установить для таблицы разрешение «запретить все» (выбрать, вставить, обновить, удалить) для всех ролей и идентификаторов пользователей (включая будущие), кроме sa?
Другими словами, можно ли сделать таблицу невидимой, кроме как для sa?
Ответ №1:
НЕТ
- db_owner увидит это
- владелец схемы может это видеть
- ссылки в хранимой процедуре не будут проверять разрешения
- …
Если вам нужна невидимая таблица, поместите ее в собственную базу данных и не устанавливайте никаких разрешений вообще. Не нужно ЗАПРЕЩАТЬ, просто не ПРЕДОСТАВЛЯЙТЕ или не СОЗДАВАЙТЕ ПОЛЬЗОВАТЕЛЯ
Комментарии:
1. Спасибо за быстрый ответ. Хорошо, есть ли какой-нибудь способ сделать столбец невидимым? Возможно, db_owner может это увидеть.
2. Разрешения на уровне столбцов сложны, но применимо то же самое: они находятся в нижней части иерархии. Поразмыслив, вы можете попробовать отдельную схему (СОЗДАТЬ СХЕМУ) и не предоставлять никаких предварительных условий. Но db_owner тоже это увидит