Mar*_*own 1 sql-server stored-procedures sql-server-2014
是否可以获得使用创建的存储过程列表WITH EXECUTE
?
我尝试查看sys.procedures
,但它们都将主体设置为null
,并且我知道有一些程序是以这种方式创建的。
你需要sys.sql_modules:
SELECT p.name, m.execute_as_principal_id
FROM sys.procedures AS p
INNER JOIN sys.sql_modules AS m
ON p.[object_id] = m.[object_id]
WHERE m.execute_as_principal_id IS NOT NULL
ORDER BY p.name;
Run Code Online (Sandbox Code Playgroud)
如果您需要识别显式EXECUTE AS CALLER
与否EXECUTE AS
(功能上相同),则需要 parse sys.sql_modules.definition
,这远非万无一失(因为EXECUTE AS
可以出现在许多不同的上下文中,包括内部注释和字符串文字)。
归档时间: |
|
查看次数: |
107 次 |
最近记录: |