我们有一个包含人力资源数据的 HR 架构的 SQL Server 数据库。它包括工资和其他私人信息。数据库所有者、系统管理员和 [Executives] 角色的成员可以查看 HR 架构。
其他一些用户是 db_datareader 角色的成员,该角色能够从数据库的任何表中读取数据。他们在人力资源安全要求存在之前就被添加到该角色中。
拒绝所有其他用户访问的策略是什么?
您要做的第一件事就是从db_datareader角色中删除其他用户
alter role db_datareader drop member user1
alter role db_datareader drop member user2
Run Code Online (Sandbox Code Playgroud)
然后创建自定义数据库角色,例如other_users,您命名它,添加成员:
alter role [other_users] add member user1
alter role [other_users] add member user2
Run Code Online (Sandbox Code Playgroud)
然后将数据库上的选择授予角色
grant select to [other_users]
Run Code Online (Sandbox Code Playgroud)
然后拒绝对 HR 架构的访问other_users
deny select on schema::HR to [other_users]
Run Code Online (Sandbox Code Playgroud)
这样,您将让其他用户能够从任何其他模式或表中读取数据,HR 模式除外
| 归档时间: |
|
| 查看次数: |
220 次 |
| 最近记录: |