SQL Server - 用户权限/安全性更改报告

时间:2013-09-30 15:12:26

标签: sql sql-server sql-server-2008

Sql Server中是否有默认报告会输出给定用户或登录的权限/安全性历史记录?如果没有,有谁知道如何制作这样的查询?我们最近发生了一个事件,用户神秘地丢失了对表的插入权限,我们想知道究竟是什么导致了它。

2 个答案:

答案 0 :(得分:1)

解决这个问题的唯一方法是读取存储每个事务详细信息的事务日志。如果您的数据库处于完全恢复模式,那么信息就在那里。

不幸的是,您无法使用标准工具执行此操作,因为MS不支持此功能。

您可以使用未记录的命令(例如fn_dblog)来获取商业日志阅读器或尝试破解它。

查看这些以获取更多详细信息

Read the log file (*.LDF) in sql server 2008

SQL Server Transaction Log Explorer/Analyzer

How to view transaction logs in sql server 2008

答案 1 :(得分: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