是否可以检查用户是否对服务器上的任何对象具有修改权限,而无需作为该用户运行查询?
我需要创建一个登录审计报告,该报告列出了对服务器上的某些内容具有插入/更新访问权限的帐户的登录时间。在服务器上的任何数据库上)
这也需要不影响性能(如果可能的话)或影响最小。
摘自本文:
select sys.schemas.name 'Schema', sys.objects.name Object, sys.database_principals.name username, sys.database_permissions.type permissions_type,
sys.database_permissions.permission_name,
sys.database_permissions.state permission_state,
sys.database_permissions.state_desc,
state_desc + ' ' + permission_name + ' on ['+ sys.schemas.name + '].[' + sys.objects.name + '] to [' + sys.database_principals.name + ']' COLLATE LATIN1_General_CI_AS
from sys.database_permissions
join sys.objects on sys.database_permissions.major_id =
sys.objects.object_id
join sys.schemas on sys.objects.schema_id = sys.schemas.schema_id
join sys.database_principals on sys.database_permissions.grantee_principal_id =
sys.database_principals.principal_id
order by 1, 2, 3, 5
您希望按username
进行过滤。请记住,这只显示显式定义的权限(和拒绝规则),而不是有效的权限。