Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如果一个对象在sys.database中没有任何条目,则其所有权限都假定为";格兰特;?_Sql Server_Sql Server 2005 - Fatal编程技术网

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首先比较 将对象的所有者指定给对象的所有者 调用对象。这是 链中的上一个链接。如果两者都有 对象具有相同的所有者, 对引用对象的权限 不进行评估


我知道一定是这样的。谢谢你找到了它,我和我的同事都很困惑为什么我们会看到这种行为。