背景: 我试图记录用户在数据库中查询的内容。我发现的一个选项是创建服务器和数据库审计规范。我不想包含 INSERT 语句,因为将为插入的每条记录记录这些语句,如果将大量数据添加到表中,这将是很多。
问题: 我们有一个 SQL 作业(在作业代理中),它使用 INSERT 查询将数据插入到表中。我希望这些日志不会出现在我们的 .sqlaudit 文件中,但确实出现了。甚至 INSERT 也不属于我们的数据库审计规范中的操作。我想知道它是否被触发做另一个动作?我列出了我包含的所有操作,但据我了解,它们都不会触发服务器在 .sqlaudit 文件中写入 INSERT 日志。可能是什么问题?
注意:我还使用查询工具执行了一个 INSERT 查询,它仍然会记录它。
添加到数据库审计规范的审计操作类型:
- DATABASE_OBJECT_ACCESS_GROUP
- SCHEMA_OBJECT_ACCESS_GROUP
- DATABASE_OBJECT_CHANGE_GROUP
- SCHEMA_OBJECT_CHANGE_GROUP
- 删除
- 执行
- 选择
- 更新
这是它在 .sqlaudit 文件中记录的语句:
INSERT [dbo].[table_name]([a],[b],[c],[d],[e],[f],[g],[h],[i],[j],[k],[l]) VALUES(@Param000004,@Param000005,@Param000006,@Param000007,@Param000008,@Param000009,@Param000010,@Param000011,@Param000012,@Param000013,@Param000014,@Param000015)