检查是否应用GRANT EXECUTE T​​O用户或angular色

在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表示正面。