管理SQL审计日志
RDS for SQL Server实例支持手动设置SQL审计日志策略。SQL审计功能会将对服务级、数据库级、表级的主要变更操作记录进审计日志文件,方便用户查看并下载。本章节介绍如何手动开启和下载SQL审计日志,以及SQL审计日志对接LTS的操作步骤。
运行日志中的审计日志与手动设置审计日志策略的区别
|
功能 |
是否默认开启 |
日志存放位置 |
保存时长 |
对性能的影响 |
|---|---|---|---|---|
|
默认开启,并且不支持关闭。 |
虚拟机 |
随文件数轮转,保留时间短。 |
非全量审计数据,无性能影响。 |
|
|
支持手动开启,开启后可以关闭。 |
OBS桶 |
控制台自行设置,保留时间长。 保留天数默认为7天,可设置范围为1~732天。 |
非全量审计数据,无性能影响。 |
|
|
支持手动对接,也可以解除对接。 |
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)
|
操作组名称 |
描述 |
|---|---|
|
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审计日志
- 单击管理控制台左上角的
,选择区域。 - 单击页面左上角的
,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。 - 在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“概览”页签。
- 在左侧导航栏单击,选择“SQL审计日志”。
- 单击“设置SQL审计”,在弹出框中设置SQL审计日志保留策略,单击“确定”,保存设置策略。
如果已经配置LTS审计日志,在页面右上方,支持切换成分析视图,查看更详细的日志分析。更多内容,请参见管理日志组。
开启或修改SQL审计:
- 将单击
设置为
,开启SQL审计日志保留策略。 - 保留天数默认为7天,可设置范围为1~732天。
图1 RDS for SQL Server审计日志
关闭SQL审计:
将
设置为单击
,关闭该SQL审计。勾选“确认关闭审计日志后,所有审计日志文件将立即删除。”复选框,表示同意删除审计日志。
SQL审计关闭后,所有审计日志都会被立即删除,不可恢复,请您谨慎操作。
- 将单击
- 单击管理控制台左上角的
,选择区域。 - 单击页面左上角的
,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。 - 在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“概览”页签。
- 在左侧导航栏单击,选择“SQL审计日志”。
- 在审计日志列表右上方选择时间范围,勾选目标日志,并单击列表左上方的“下载”,批量下载SQL审计日志。
您还可以选择单个审计日志,单击操作列中的“下载”,下载目标SQL审计日志。
- 单击管理控制台左上角的
,选择区域。 - 单击页面左上角的
,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。 - 在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“概览”页签。
- 在左侧导航栏单击。
- 选择“SQL审计日志”页签,单击页面右上方的“对接LTS配置”。
- 在右侧弹框中,日志类型选择审计日志,在下拉框分别选择对应的日志组和日志流,单击“确定”。
图2 LTS审计日志配置
- 访问日志提供了实例所请求的所有详细日志,日志存在LTS云日志服务中。
- 配置完成后不会立即生效,存在10分钟左右的时延,请知悉。
- LTS审计日志配置成功后,会产生一定费用,具体计费可参考LTS的定价详情。
- 开启SQL审计日志对接至LTS后,可以在LTS控制台界面看到明文日志,请谨慎操作。
- 在业务高峰期,本地可能会暂存较多的日志文件,有磁盘打满风险,建议同步开启磁盘自动扩容。
- 在您进行LTS审计日志配置后,会默认上传所有审计策略。