小编Her*_*ner的帖子

SQL Server 数据库级审核过滤不起作用

我已经SQL Server 2014 Enterprise Edition安装了。出于隐私考虑,需要记录私有数据上的 SELECT 语句(特定域用户除外),由写入数据库的服务使用。

创建数据库级审计规范效果很好。例如

CREATE DATABASE AUDIT SPECIFICATION [DatabaseAuditSpecification-01]
FOR SERVER AUDIT [My_Audit]
ADD (SELECT ON SCHEMA::[dbo] BY [public])
WITH (STATE = OFF)
GO
Run Code Online (Sandbox Code Playgroud)

导致每个人的所有 SELECT 语句都写入日志文件。当我用 替换SCHEMA::[dbo][MyTable],日志被正确过滤为 SELECTs on MyTableonly。

但是当我替换public为特定的用户名时MYDOMAIN\myuser,日志条目不会像我预期的那样针对给定的用户名进行过滤。

CREATE DATABASE AUDIT SPECIFICATION [DatabaseAuditSpecification-01]
FOR SERVER AUDIT [My_Audit]
ADD (SELECT ON SCHEMA::[dbo] BY [MYDOMAIN\myuser])
WITH (STATE = OFF)
GO
Run Code Online (Sandbox Code Playgroud)

任何用户发出的每个 SELECT被记录下来。

我查询sys.server_principals以检查给定的用户是否是有效的主体名称,但它实际上显示在结果中。

我的第二个审计规范有什么问题?

编辑:似乎有问题的 CREATE 语句已被 …

sql-server sql-server-2012 sql-server-2014

6
推荐指数
1
解决办法
1099
查看次数