Sql Server 中是否有默认报告将输出给定用户或登录名的权限/安全性历史记录?如果没有,有谁知道如何制作这样的查询?我们最近发生了一个事件,用户神秘地失去了对表的插入权限,我们想找出导致它的确切原因。
问问题
2818 次
2 回答
1
解决这个问题的唯一方法是读取存储每个事务详细信息的事务日志。如果您的数据库处于完全恢复模式,那么信息就在那里。
不幸的是,您不能使用标准工具执行此操作,因为 MS 不支持此操作。
你可以让自己成为一个商业日志阅读器,或者尝试使用 fn_dblog 等未记录的命令来破解它。
查看这些以获取更多详细信息
于 2013-10-01T09:19:00.477 回答
0
这是用于查找数据库权限的查询。我们一直在使用此查询的变体将权限从一个表复制到另一个表。
select *
FROM sys.database_permissions AS dp
INNER JOIN sys.objects AS o ON dp.major_id=o.object_id
INNER JOIN sys.schemas AS s ON o.schema_id = s.schema_id
INNER JOIN sys.database_principals AS dpr ON dp.grantee_principal_id=dpr.principal_id
于 2013-09-30T17:21:34.480 回答