我刚刚为 SQL Server 用户设置了对单个表的访问权限。我通过为用户赋予 db_datareader 角色来实现这一点。然后,我通过在每个表的 DENY 列中设置所有复选框来设置我不想让此用户访问的所有表的权限。
这可行但需要点击很多框。
有没有更短、更简单的方法来做到这一点?
答案1
是的!您完全搞反了。从 datareader 角色中删除用户(您发现该角色授予对整个数据库的选择权),并且仅授予对该一个表的选择访问权限。
USE MyDB
GRANT SELECT ON dbo.MyTable to JoeUser
或者,在 SQL Server Management Studio 中
- 右键单击表并获取属性
- 点击左侧菜单中的权限
- 单击“搜索”并找到您的用户
- 在“选择”行中的“授予”列中打勾