Требуется разрешение для просмотра списка таблиц в Management Studio - PullRequest
4 голосов
/ 10 ноября 2009

Я искал в СО уже существующий вопрос, но не смог его найти.

Я устанавливаю роль базы данных только для чтения для нескольких баз данных в нашей ферме серверов. Вот пример разрешений для одной таблицы:

GRANT SELECT ON [dbo].[Table] TO [ReadOnly]
GRANT VIEW DEFINITION ON [dbo].[Table] TO [ReadOnly]
DENY ALTER ON [dbo].[Table] TO [ReadOnly]
DENY CONTROL ON [dbo].[Table] TO [ReadOnly]
DENY DELETE ON [dbo].[Table] TO [ReadOnly]
DENY INSERT ON [dbo].[Table] TO [ReadOnly]
DENY REFERENCES ON [dbo].[Table] TO [ReadOnly]
DENY TAKE OWNERSHIP ON [dbo].[Table] TO [ReadOnly]
DENY UPDATE ON [dbo].[Table] TO [ReadOnly]

Это работает так, как предназначено для разрешений SELECT ... Я могу ТОЛЬКО ВЫБРАТЬ данные, что в точности соответствует моему желанию.

Однако я не вижу список таблиц на вкладке «Таблицы» для указанной базы данных в Management Studio. Моя цель с этим пользователем - предоставить некоторым пользователям, незнакомым с SQL, логин, который они могут использовать для извлечения данных и начала экспериментов с SQL. Эти пользователи имеют опыт работы с SAS, языком статистической обработки, поэтому у них есть некоторый опыт работы с кодом, но не так много конкретно в SQL.

Какие из этих разрешений будут отображать список таблиц в Management Studio?

Ответы [ 2 ]

4 голосов
/ 10 ноября 2009

Предоставление любых разрешений и определений представлений - это все, что вам нужно, однако вы также явно DENY используете наследуемые разрешения от того же пользователя ( DENY всегда переопределяет GRANT ). Если вы просто не GRANT разрешите, они не будут иметь его (в качестве альтернативы вы можете ОТМЕНИТЬ, а не DENY, что явно не отменяет GRANT). Если вы измените значения DENY на REVOKE в приведенном выше сценарии, ваши пользователи смогут просматривать / просматривать объекты в SSMS.

0 голосов
/ 10 ноября 2009

Это не ответ на вопрос - но он делает то, что вам нужно сделать:

используйте роль DB_DataReader - для пользователя, которого вы хотите только для чтения. тогда, если вам нужно еще больше спрятать какие-нибудь столы от него - просто разберитесь с ними.

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