我正在使用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
这是正确的方法吗?还是有解决这个问题的更有效方法?
答案 0 :(得分:1)
不需要使用sp_msforeachtable。仅涉及一张表,因此您可以通过发出
来完成任务DENY SELECT ON tableName TO [userName]
..或
REVOKE SELECT ON OBJECT::[shemaName].[tableName] TO [userName]