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 次 |
| 最近记录: |