【发布时间】:2010-11-28 12:15:09
【问题描述】:
如何在 sql server 2005 中获得存储过程的授予权限?
【问题讨论】:
标签: sql sql-server sql-server-2005 security permissions
如何在 sql server 2005 中获得存储过程的授予权限?
【问题讨论】:
标签: sql sql-server sql-server-2005 security permissions
SELECT
OBJECT_NAME(major_id), USER_NAME(grantee_principal_id), permission_name
FROM
sys.database_permissions p
WHERE
OBJECT_NAME(major_id) = 'MyProc'
如果你也想加入 sys.database_principals 或 sys.objects,你可以调整它
【讨论】:
SELECT 命令,我发现我写的存储过程有NO Permissions。我现在如何设置一个?
尝试(注意:不仅仅适用于存储过程):
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'
【讨论】:
有点离题,但是...您可以enable您开发数据库以“记住”它对不同对象的权限并在开发期间保留它们,无论您删除和创建对象的次数...
【讨论】: