我有以下关于模式/特权的问题:
谢谢。
发布于 2019-02-01 03:57:55
似乎您认为模式和角色是相同的,但它们并不相同。角色是安全成员身份容器,主体可以是角色的成员。架构包含数据库架构绑定对象,它们有助于将数据库对象组合在一起,并且属于主体。当您创建一个新用户时,您可以选择他的默认架构,将他添加到某些角色,并授予他对模式的所有权。
db_denydatareader固定数据库角色的成员不能读取数据库中的用户表中的任何数据。
关于db_datareader和db_denydatawriter的区别。db_datareader授予所有表的select权限,并且不影响任何insert、update、delete权限。同时,db_denydatawriter拒绝对所有表进行插入、更新和删除权限,拒绝对任何表进行任何更改。即使有人被直接授予插入权限,他们仍然无法插入,因为拒绝超限权限授予。将用户分配给db_denydatawriter角色意味着他们将永远无法对数据库进行任何更改,不管他们拥有什么其他权限。拒绝优先于授予。
关于问题#4,可以对架构上的表进行分组,然后拒绝对主或用户对架构的选择权限。db_datareader是一个固定的数据库角色,它不是模式。
DENY SELECT ON schema::[SchemaName] TO [user_name]
类似地,您可以通过包含一组表的数据库上的架构授予SELECT和UPDATE权限。
GRANT SELECT, UPDATE on SCHEMA::SchemaName TO [user_name]
您可以找到数据库角色这里的列表。
https://stackoverflow.com/questions/54475320
复制相似问题