如何防止特定用户访问SQL数据库中的特定表?

时间:2019-05-07 06:34:00

标签: sql-server tsql permissions

我正在使用SQL Server 2014,并且我有一个名为MyDatabase的数据库,其中包含多个表。我有一个名为User1的用户,该用户具有数据库读取权限。

假设我要阻止User1访问名为tbl1的表(即查询或查看该表),该怎么办?

StackOverflow上进行搜索时,我遇到了以下问题:SQL Server : can you limit access to only one table

按照该问题的可接受答案,我的SQL查询将如下所示:

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

这是正确的方法吗?还是有解决这个问题的更有效方法?

1 个答案:

答案 0 :(得分:1)

不需要使用sp_msforeachtable。仅涉及一张表,因此您可以通过发出

来完成任务
DENY SELECT ON tableName TO [userName]

..或

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