移动已创建审核规范的数据库
如果将已创建“审核规范”的数据库,利用“附加”或“还原”的方式移动到新的服务器时,会因为在实例上没有创建对应的“审核”对象,而产生所谓“遗弃的(Orphaned)”审核规范的问题,这将无法记录任何的审核事件。
若要修正此问题,必须先知道在“审核”与“审核规范”对象上,内部是利用GUID编号进行对应。如果附加的数据库具有审核规范并且指定的 GUID 在服务器上不存在,则将导致“孤立”审核规范。 因为服务器实例上不存在具有匹配 GUID 的审核,所以将不记录审核事件。可以用以下方式来修正:
l 使用 ALTER DATABASE AUDIT SPECIFICATION 命令将孤立审核规范连接到现有服务器审核。 或者,使用 CREATE SERVER AUDIT 命令创建一个具有指定 GUID 的新服务器审核。
l 使用SSMS,先停用此数据库的审核规范,设置要连接到既有或新创建的实例审核后,再启用此数据库的审核规范。
数据库镜像和SQL Server审核
已定义了数据库审核规范并使用数据库镜像的数据库将包括此数据库审核规范。 若要对已镜像的 SQL 实例进行正确的处理,必须配置下列项:
l 镜像服务器必须拥有具有相同 GUID 的审核才能使数据库审核规范能够写入审核记录。 这可以通过使用命令 CREATE AUDIT WITH GUID=<GUID from source Server Audit> 进行配置。
l 对于二进制文件目标,镜像服务器服务帐户对要写入审核记录的位置必须具有相应的权限。
l 对于 Windows 事件日志目标,镜像服务器所在计算机上的安全策略必须允许服务帐户访问安全事件日志或应用程序事件日志。
审核造成服务器关闭
若因为审核失败,造成服务器关闭,或是在审核上设置“在审核日志故障时关闭服务器(Shutdown server on audit failure)”选项时,将导致服务器因故关闭。若要重新启动服务器,请先利用“-m”参数在“单用户模式”下启动SQL Server,以略过审核所导致的服务器关闭,再利用以下的方法来处理。
l 利用ALTER SERVER AUDIT语句,设置ON_FAILURE自变量值为CONTINUE。
l 取消勾选“在审核日志故障时关闭服务器(Shutdown server on audit failure)”选项。
但若是在审核初始化时发生失败,服务器将被关闭,请在命令提示窗口内,使用“-f”选项(以最小配置方式)来启动服务器。
使用审核的考虑
在使用审核对象时,请留意以下重点。
l 审核对象是使用高性能的“扩展事件(Extended Events)”来产生审核。DBA也可以自行设计扩展事件,来处理所需的信息。
l 审核对象是与数据库引擎直接协同工作,而非单独、外挂的应用程序。
l 审核对象包含SQL Trace内的Security Audit事件类别。
l 当创建或是更改审核对象,也可以受到审核。
l 比SQL Trace更有效率。
l 轻松管理与部署,可以SSMS工具管理,并使用T-SQL执行部署。