SQL 获取sql server 2005中存储过程的权限
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/1427863/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-01 03:37:39 来源:igfitidea点击:
Get permissions for stored procedure in sql server 2005
提问by Tim Abell
How do I get the granted permissions for a stored procedure in sql server 2005?
如何在 sql server 2005 中获得对存储过程的授予权限?
回答by gbn
SELECT
OBJECT_NAME(major_id), USER_NAME(grantee_principal_id), permission_name
FROM
sys.database_permissions p
WHERE
OBJECT_NAME(major_id) = 'MyProc'
You can tweak this to join to sys.database_principals
, or sys.objects
if you want too
您可以调整它以加入sys.database_principals
,或者sys.objects
如果您也想要加入
回答by KM.
try (NOTE: works for more than stored procedures):
尝试(注意:不仅适用于存储过程):
SELECT
dp.NAME AS principal_name
,dp.type_desc AS principal_type_desc
,o.NAME AS object_name
,o.type_desc
,p.permission_name
,p.state_desc AS permission_state_desc
FROM sys.all_objects o
INNER JOIN sys.database_permissions p ON o.OBJECT_ID=p.major_id
LEFT OUTER JOIN sys.database_principals dp ON p.grantee_principal_id = dp.principal_id
WHERE o.NAME = 'YourProcedureName'