Запретить все для таблицы всем, кроме sa

#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 тоже это увидит