以下是引用片段: CREATE SERVER AUDIT HIPAA_File_Audit TO FILE ( FILEPATH=’\\SQLPROD_1\Audit\’ ); CREATE SERVER AUDIT HIPAA_AppLog_Audit TO APPLICATION_LOG WITH ( QUEUE_DELAY = 500, ON_FAILURE = SHUTDOWN); |
注意在记录到一个文件目的地中时,文件名称没有在CREATE SERVER AUDIT语句中指定。审查文件名称采用AuditName_AuditGUID_nn_TS.sqlaudit 的形式,其中AuditName 是审查对象的名称,AuditGUID是与审查对象关联的唯一标识符,nn是用于分割文件组的分区编码,而TS是一个timestamp类型的值。例如,通过之前的代码示例创建了HIPAA_FILE_Audit审查对象,它可以产生一个日志文件,其名称与下面的类似:
HIPAA_File_Audit_{95A481F8-DEF3-40ad-B3C6-126B68257223}_00_29384.sqlaudit
你可以使用QUEUE_DELAY 审查选项为性能原因执行异步的审查,而ON_FAILURE选项决定当审查信息不能写到目的地时所要采取的行动。在之前的HIPAA_AppLog_Audit示例中所显示的,ON_FAILURE选项配置为当日志不能写的时候关闭SQL Server示例;在这种情况下,执行CREATE SERVER AUDIT语句的用户必须具有SHUTDOWN权限。
在你创建了一个审查对象时,你可以使用CREATE SERVER AUDIT SPECIFICATION和CREATE DATABASE AUDIT SPECIFICATION语句为它添加事件。CREATE SERVER AUDIT SPECIFICATION 添加服务器级别的行动组(在服务器级别会发生的相关行动的预定义集合)到一个审查中去。例如,下面的代码添加了FAILED_LOGIN_GROUP 行动组(它记录了失败的登陆尝试)到HIPAA_File_Audit审查中去。
以下是引用片段: CREATE SERVER AUDIT SPECIFICATION Failed_Login_Spec FOR SERVER AUDIT HIPAA_File_Audit ADD (FAILED_LOGIN_GROUP); |
CREATE DATABASE AUDIT SPECIFICATION语句添加数据库级别的行动组和将单个的数据库事件添加到一个审查中去。添加单独的行动使得你可以过滤基于这个活动涉及的对象和用户来记录的行动。例如,下面的代码示例添加了DATABASE_OBJECT_CHANGE_GROUP行动组(它记录数据库中的任何CREATE、ALTER或DROP操作)和将用户SalesUser或 SalesAdmin在Sales schema中对对象执行的任何INSERT, UPDATE, or DELETE语句添加到HIPAA_AppLog_Audit审查中去。
以下是引用片段: CREATE DATABASE AUDIT SPECIFICATION Sales_Audit_Spec FOR SERVER AUDIT HIPAA_AppLog_Audit ADD (DATABASE_OBJECT_CHANGE_GROUP), ADD (INSERT, UPDATE, DELETE ON Schema::Sales BY SalesUser, SalesAdmin); |
审查对象提供了一个可管理的审查框架,它使得定义应该被记录的事件和日志应该存储的位置变得很容易。这个对SQL Server 的补充帮助你执行一个完全的审查解决方案来保护你的数据库和满足调整遵从性要求。
6.2 DDL触发器
DDL触发器是在SQL Server 2005中推出的,不像表中的数据改变时所执行的Transact-SQL代码的DML触发器,一个DDL触发器是在表的结构改变时才触发。这是一个很好的跟踪和审查对数据库schema的结构化改变的方法。
这些触发器的句法类似于DML触发器的语法。DDL触发器是AFTER 触发器,它对DDL语言事件作出响应;它们不对执行DDL等的类似操作的系统存储过程作出响应。它们完全是