sql-server - 如何防止特定用户访问我的 SQL 数据库中的特定表?
问题描述
我正在使用 SQL Server 2014,并且我有一个名为的数据库MyDatabase
,其中包含多个表。我有一个名为的用户User1
,他对数据库具有读取权限。
假设我想阻止User1
访问一个名为tbl1
(即查询或查看该表)的表,我该怎么做?
搜索StackOverflow
,我遇到了这个问题:SQL Server : 你能限制对一个表的访问吗
按照该问题中公认的答案,我的 SQL 查询将如下所示:
exec sp_msforeachtable "DENY SELECT ON tbl1 TO [User1];"
GO
这是正确的方法吗?或者有没有更有效的方法来解决这个问题?
解决方案
无需使用 sp_msforeachtable。只涉及一张表,因此您可以通过发出来完成您的任务
DENY SELECT ON tableName TO [userName]
.. 或者
REVOKE SELECT ON OBJECT::[shemaName].[tableName] TO [userName]
推荐阅读
- javascript - 使用严格类型检查时,“元素”上不存在“样式”
- java - “公共接口 MyInterface 的含义
> {...}" - android - 如何处理列表视图中的大量数据?
- facebook - 用于未向服务器发送信息的页面的 Facebook webhook
- rest - 如何在 swagger ui 中从请求模型中排除元类
- c# - 数据安全加密
- javascript - connect 修改 prop 对象时不改变子组件的 props
- android - 从我在 android 中的布局中获取 NullPointerException
- java - Javafx mvvmfx textarea 追加
- c++ - 将对象传递给 C++ 方法