Her*_*ner 6 sql-server sql-server-2012 sql-server-2014
我已经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 MyTable
only。
但是当我替换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 management studio 中发布Script Database Audit Specification as ...时,将原始语句写入查询编辑器窗口。但是,将值更改为用户名以外的其他值(例如,替换public
为dbo
)效果很好。
归档时间: |
|
查看次数: |
1099 次 |
最近记录: |