更新时间:2026-02-11 GMT+08:00
分享

管理SQL审计日志

RDS for SQL Server实例支持手动设置SQL审计日志策略。SQL审计功能会将对服务级、数据库级、表级的主要变更操作记录进审计日志文件,方便用户查看并下载。本章节介绍如何手动开启和下载SQL审计日志,以及SQL审计日志对接LTS的操作步骤。

运行日志中的审计日志与手动设置审计日志策略的区别

表1 功能区别说明

功能

是否默认开启

日志存放位置

保存时长

对性能的影响

运行日志中的审计日志

默认开启,并且不支持关闭。

虚拟机

随文件数轮转,保留时间短。

非全量审计数据,无性能影响。

手动设置审计日志策略

支持手动开启,开启后可以关闭。

OBS桶

控制台自行设置,保留时间长。

保留天数默认为7天,可设置范围为1~732天。

非全量审计数据,无性能影响。

审计日志对接LTS

支持手动对接,也可以解除对接。

LTS

保留时长由LTS设置。

全量数据,对性能会有部分消耗。

审计日志功能介绍

使用RDS for SQL Server Audit 功能,您可以对服务器级别和数据库级别事件组以及各个事件进行审核,RDS for SQL Server审核包括零个或多个审核操作项目。表2介绍了服务器级审核操作组,并提供了适用的等效RDS for SQL Server事件类。有关详细信息,请参阅SQL Server 审核操作组官方说明

  • 审计日志的每个文件最大50MB,可以保留50个文件。
  • RDS for SQL Server 2008 web版和RDS for SQL Server 2008 标准版不支持SQL审计功能。
  • 创建job,修改参数,修改服务器属性参数,sql agent属性参数,数据库扩展属性等暂无审计。
  • 审计日志中出现“succeeded”字段,表示触发事件的操作是否成功。 该字段不可为 null。 对于除登录事件之外的所有事件,它仅报告权限检查(而不是操作)成功或失败。
  • 表级、列级架构变化审计描述请以RDS for SQL Server引擎审计结果为准。
  • 如果需要读取审计日志内容,可以从控制台获取审计日志文件名后,直接进行查询:

    select * from msdb.dbo.rds_fn_get_audit_file('D:\ServerAudit\audit\RDSAudit_test.sqlaudit', default, default)

    如果将审计日志下载到本地,需要连上本地的SQL Server后,通过本地路径进行查询(本地账号需要有CONTROL SERVER权限):

    select * from sys.fn_get_audit_file('\\path\RDSAudit_test.sqlaudit', default, default)

表2 审计包含的操作组

操作组名称

描述

APPLICATION_ROLE_CHANGE_PASSWORD_GROUP

更改应用程序角色的密码引发事件。

DATABASE_CHANGE_GROUP

创建、更改、删除数据库。

DATABASE_OBJECT_CHANGE_GROUP

针对数据库对象(如架构)执行create/alter/drop语句时将引发此事件。

DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP

在数据库范围内更改对象所有者时,将触发此事件。

DATABASE_OBJECT_PERMISSION_CHANGE_GROUP

针对数据库对象(例如,程序集和架构)发出GRANT、REVOKE或DENY语句时将引发此事件。

DATABASE_OWNERSHIP_CHANGE_GROUP

使用alter authorization语句更改数据库的所有者时,引发此事件。

DATABASE_PERMISSION_CHANGE_GROUP

sqlserver中任何主体针对某语句权限发出的GRANT、REVOKE或DENY语句时均引发此事件(仅适用于数据库事件,例如授予对某数据库的权限)

DATABASE_PRINCIPAL_CHANGE_GROUP

在数据库中创建、更改或删除主体(如用户)时,将引发此事件。

DATABASE_ROLE_MEMBER_CHANGE_GROUP

向数据库角色添加登录名或从中删除登录名时将引发此事件。

FAILED_LOGIN_GROUP

指示主体尝试登录到SQL Server,但是失败。此类中的事件由新连接引发或由连接池中重用的连接引发。

LOGIN_CHANGE_PASSWORD_GROUP

通过alter login语句或sp_password 存储过程更改登录密码时,将引发此事件。

SCHEMA_OBJECT_CHANGE_GROUP

针对架构执行create、alter或drop 操作时引发此事件。

SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP

检查更改架构对象(例如表、过程或函数)的所有者的权限时,会引发此事件。

SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP

对架构对象执行grant、deny或revoke语句时将引发此事件。

SERVER_OBJECT_CHANGE_GROUP

针对服务器对象执行create、alter、drop操作时引发此事件。

SERVER_OBJECT_OWNERSHIP_CHANGE_GROUP

服务器范围中的对象的所有者发生更改时将引发此事件。

SERVER_OBJECT_PERMISSION_CHANGE_GROUP

sqlserver中的任何主体针对某服务器对象权限发出grant、revoke、deny语句时,将引发此事件。

SERVER_PERMISSION_CHANGE_GROUP

为获取服务器范围内的权限而发出grant、revoke、deny语句时,将引发此事件。

SERVER_PRINCIPAL_CHANGE_GROUP

创建、更改、删除服务器主体时将引发此事件。

SERVER_ROLE_MEMBER_CHANGE_GROUP

向固定服务器角色添加登录名或从中删除登录名时将引发此事件。

SERVER_STATE_CHANGE_GROUP

修改SQL Server服务状态时将引发此事件。

USER_CHANGE_PASSWORD_GROUP

每当使用alter user语句更改包含数据库用户的密码时,都将引发此事件。(SQL Server 2008版本不涉及)。

开启或下载SQL审计日志

  1. 单击管理控制台左上角的,选择区域。
  2. 单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
  3. 在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“概览”页签。
  4. 在左侧导航栏单击日志管理,选择“SQL审计日志”
  5. 单击“设置SQL审计”,在弹出框中设置SQL审计日志保留策略,单击“确定”,保存设置策略。

    如果已经配置LTS审计日志,在页面右上方,支持切换成分析视图,查看更详细的日志分析。更多内容,请参见管理日志组

    开启或修改SQL审计:

    • 将单击设置为,开启SQL审计日志保留策略。
    • 保留天数默认为7天,可设置范围为1~732天。
    图1 RDS for SQL Server审计日志

    关闭SQL审计:

    设置为单击,关闭该SQL审计。

    勾选“确认关闭审计日志后,所有审计日志文件将立即删除。”复选框,表示同意删除审计日志。

    SQL审计关闭后,所有审计日志都会被立即删除,不可恢复,请您谨慎操作。

  1. 单击管理控制台左上角的,选择区域。
  2. 单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
  3. 在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“概览”页签。
  4. 在左侧导航栏单击日志管理,选择“SQL审计日志”
  5. 在审计日志列表右上方选择时间范围,勾选目标日志,并单击列表左上方的“下载”,批量下载SQL审计日志

    您还可以选择单个审计日志,单击操作列中的“下载”,下载目标SQL审计日志。

  1. 单击管理控制台左上角的,选择区域。
  2. 单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
  3. 在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“概览”页签。
  4. 在左侧导航栏单击日志管理
  5. 选择“SQL审计日志”页签,单击页面右上方的“对接LTS配置”。
  6. 在右侧弹框中,日志类型选择审计日志,在下拉框分别选择对应的日志组和日志流,单击“确定”。

    图2 LTS审计日志配置
    • 访问日志提供了实例所请求的所有详细日志,日志存在LTS云日志服务中。
    • 配置完成后不会立即生效,存在10分钟左右的时延,请知悉。
    • LTS审计日志配置成功后,会产生一定费用,具体计费可参考LTS的定价详情
    • 开启SQL审计日志对接至LTS后,可以在LTS控制台界面看到明文日志,请谨慎操作。
    • 在业务高峰期,本地可能会暂存较多的日志文件,有磁盘打满风险,建议同步开启磁盘自动扩容。
    • 在您进行LTS审计日志配置后,会默认上传所有审计策略。

相关文档