Sql server 如果一个对象在sys.database中没有任何条目,则其所有权限都假定为";格兰特;?
假设我有一个可以在许多存储过程中访问的函数。如果该函数在Sql server 如果一个对象在sys.database中没有任何条目,则其所有权限都假定为";格兰特;?,sql-server,sql-server-2005,Sql Server,Sql Server 2005,假设我有一个可以在许多存储过程中访问的函数。如果该函数在sys.database\u permissions中没有条目,那么可以运行其中一个存储过程的帐户是否会自动运行该函数 这是我正在使用的查询: exec sp_depends 'dbo.theFunction' -- for each object in those results, run this query select * from sys.database_permissions dp where gran
sys.database\u permissions
中没有条目,那么可以运行其中一个存储过程的帐户是否会自动运行该函数
这是我正在使用的查询:
exec sp_depends 'dbo.theFunction'
-- for each object in those results, run this query
select *
from sys.database_permissions dp
where
grantee_principal_id=USER_ID('theAccount')
and
major_id=object_id('dbo.theFunction')
and minor_id=0
and ( state_desc = 'GRANT' or state_desc = 'SELECT' )
在任何事情上都没有默许。“从存储过程访问的表”或“从存储过程访问的函数”的工作方式通常是通过: 当多个数据库对象访问 彼此顺序,顺序 被称为链条。[…]当通过 链,SQL Server首先比较 将对象的所有者指定给对象的所有者 调用对象。这是 链中的上一个链接。如果两者都有 对象具有相同的所有者, 对引用对象的权限 不进行评估
我知道一定是这样的。谢谢你找到了它,我和我的同事都很困惑为什么我们会看到这种行为。