0

我对所有权链接做了很多研究,但我仍然不确定我是否理解它。

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

如果 A.PROC 访问 B.TABLE,但用户只有 A.PROC 的执行权限,则过程将失败。但是如果 A.PROC 访问 A.TABLE,那么它会被执行吗?那是对的吗 ?

4

1 回答 1

1

不。请参阅所有权和用户模式分离

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

...

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

并且ALTER AUTHORIZATION

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

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

于 2013-08-13T14:14:44.620 回答