Как запретить конкретному пользователю доступ к определенной таблице в моей базе данных SQL? - PullRequest
1 голос
/ 07 мая 2019

Я использую SQL Server 2014, и у меня есть база данных с именем MyDatabase, которая содержит несколько таблиц. У меня есть пользователь с именем User1, у которого есть разрешения на чтение в базе данных.

Если я хочу запретить User1 доступ к таблице с именем tbl1 (то есть для запроса или просмотра этой таблицы), как я могу это сделать?

Поиск на StackOverflow, я сталкивался с таким вопросом: SQL Server: вы можете ограничить доступ только к одной таблице

Исходя из принятого ответа на этот вопрос, мой SQL-запрос будет выглядеть так:

exec sp_msforeachtable "DENY SELECT ON tbl1 TO [User1];"
GO

Это правильный способ сделать это? Или есть более эффективный способ решения этой проблемы?

1 Ответ

1 голос
/ 07 мая 2019

Нет необходимости использовать sp_msforeachtable. Используется только одна таблица, поэтому вы можете выполнить свою задачу, набрав

DENY SELECT ON tableName TO [userName]

.. или

REVOKE SELECT ON OBJECT::[shemaName].[tableName] TO [userName]
...