我们正在将我们的一个应用程序用户登录从dbowner
一个更细化的权限方案更改为最终。
在 SQL Server 2016 中是否有一种方法可以跟踪权限违规?也就是说,这个新用户不能从表 dbo 中选择。TableName以便我可以查看它并确定它是否合适。
我知道我可以从事物的程序方面捕获错误并记录它们,但如果数据库可以为我记录它,我宁愿不依赖它。
我们正在将我们的一个应用程序用户登录从dbowner
一个更细化的权限方案更改为最终。
在 SQL Server 2016 中是否有一种方法可以跟踪权限违规?也就是说,这个新用户不能从表 dbo 中选择。TableName以便我可以查看它并确定它是否合适。
我知道我可以从事物的程序方面捕获错误并记录它们,但如果数据库可以为我记录它,我宁愿不依赖它。
您可以使用Extended Events ™ 来完成此操作。该
error_reported
事件允许您在每次发生特定错误时将一行记录到文件中。您可以向记录的内容添加其他信息,例如username
和client_hostname
。下面是一些示例 T-SQL,可帮助您开始筛选仅错误代码 262 的过滤器:假设我最麻烦的用户之一使用他的登录名
sean_gallardy
登录。我不信任这个用户,所以我给了他非常有限的权限。如果他尝试查看查询计划,他会在 SSMS 中收到以下错误消息:以下是作为响应记录到扩展事件文件中的内容: