不要破坏链条!

通过在一个对象(例如视图)上设置权限,所有权链接能够管理对多个对象(例如多个表)的访问。它是一种用于控制数据访问的强大技术,允许创建视图和/或存储过程定义的“安全层”,这样授权用户可以访问视图或执行存储过程,而不能直接访问基表。通过这种方式,所有权链大大简化了安全模型。这种技术在以前的版本中使用过,现在在SQL Server 2005中使用模式对象也支持这种技术。

规则是,如果视图、存储过程或函数中引用的所有数据库对象都属于同一用户,那么SQL Server只检查最高级别的权限。因为所有对象都有相同的所有者,所以SQL Server假设所有者在顶级对象上设置权限时知道它们在做什么。这是一个完整的所有权链,是一件好事。它还具有创建安全层的效果,因为底层数据库对象受到保护,调用用户无法访问。保证所有权链不间断的一种简单方法是让同一个用户(最好是数据库所有者)创建数据库中的所有对象。相反,如果任何一个对象是由其他用户拥有的,我们就会有一个破裂的所有权链(不好),SQL Server将被迫检查所有级别的权限,因此访问将被拒绝,除非我们设置所有这些级别的权限。这不仅难于管理,而且还开放了对我们想要保护的低级对象的访问。

随着2005年Schema对象的引入,对象的限定名称中不再明显显示所有者,但是所有权链仍然适用。如果您拥有一个Schema,那么您实际上就拥有了其中包含的所有对象。同样,只要所有对象都属于同一个所有者,我们就有了一个完整的所有者链,创建安全层是小菜一碟。

干杯

布莱恩

最近的帖子:

猛烈抨击这些SQL注入攻击!

SSMS 2008 Debug -非常酷…

在线图书再次节省了一天-配置文件流数据

加入网络世界社区足球竞猜app软件脸谱网LinkedIn对自己最关心的话题发表评论。
相关:

版权所有©2008 IDG Com足球竞彩网下载munications, Inc.

SD-WAN买家指南:向供应商(和您自己)提出的关键问题