在Microsoft SQL Server中,我可以使用
GRANT EXECUTE TO <principal>
将执行权限授予某个用户或angular色。 我对检测感兴趣:
我怎样才能同样简单地检查GRANT EXECUTE命令是否已经应用到给定的用户/angular色? (由我或其他pipe理员)
例:
如果我使用GRANT EXECUTE TO user01并在几周后返回:是否有一个简单的方法来检查我(或其他人)是否已经使用GRANT EXECUTE TO user01 ?
我发现它存储的地方,所以直到有人发布更简单的答案,我会保持这个代码片段手头的情况下检查:
DECLARE @username nvarchar(128) = 'user01'; SELECT COUNT(*) FROM sys.database_permissions WHERE grantee_principal_id = (SELECT UID FROM sysusers WHERE name = @username) AND class_desc = 'DATABASE' AND type='EX' AND permission_name='EXECUTE' AND state = 'G';
结果0表示否定答案, 1表示正面。