SQL Server: как неявно иметь все права доступа, а некоторые явно отказывать? - PullRequest
0 голосов
/ 05 ноября 2010

я хочу запретить некоторый доступ к некоторым объектам в базе данных для конкретного пользователя; но все, что конкретно не запрещено, я хочу, чтобы по умолчанию было предоставлено.

Обычно я делаю пользователя членом роли db_owner, чтобы предоставить им полный доступ (это потому, что у броска public по умолчанию нет полного доступа). Но если я тогда специально откажу разрешение select на конкретную таблицу для этого конкретного пользователя, у них все равно будет разрешение на выбор.

Как пользователь неявно может иметь полный доступ, если только явно не запрещен?

Ответы [ 2 ]

1 голос
/ 05 ноября 2010

Поместите всех в роль, которая не является владельцем, как db_datareader.Я думаю, что ваша проблема была в том, чтобы отказать в выборе для члена db_owner.То же самое касается администраторов.

0 голосов
/ 05 ноября 2010

Не берите в голову, проблема не в том, что я описал.

  • пользователь является членом db_owner фиксированная роль
  • пользователь запрещен select доступ к таблице
  • пользовательвсе еще может получить доступ к данным таблицы

Это потому, что пользователь сначала просматривает представление, хранимую процедуру или функцию.Очевидно, вам разрешено обходить защиту, если вы используете псевдоним таблицы.

SQL Server: как неявно иметь все права доступа, а некоторые явно отказывать в доступе?

...