表/视图/ proc的“所有者”是否始终是SCHEMA?

时间:2013-08-13 14:00:51

标签: sql-server sql-server-2008 sql-server-2008-r2

我对所有权链接进行了大量研究,但我仍然不确定我是否理解它。

那么:说/ table / view / proc的“所有者”总是一个SCHEMA是否正确?

如果A.PROC访问B.TABLE,但用户只能在A.PROC上执行,那么该过程将失败。但是如果A.PROC访问A.TABLE,它会被执行吗?这是对的吗?

1 个答案:

答案 0 :(得分:1)

没有。见Ownership and User-Schema separation

  

默认情况下,当开发人员在架构中创建对象时,对象由拥有架构的安全主体拥有,而不是开发人员。

     

...

     

架构还可以包含由不同用户拥有的对象,并且具有比分配给架构的权限更细化的权限

ALTER AUTHORIZATION

  

从SQL Server 2005开始,用户可以拥有另一个数据库用户拥有的架构所包含的OBJECT或TYPE。这是对早期版本的SQL Server的行为更改。

因此,如果A.PROCB.TABLE都归D所有,则所有权链接意味着不会对B.TABLE进行安全检查。相反,如果A.PROC拥有DA.TABLE拥有E,则所有权链接不适用,并且会进行权限检查。