查看或下载审计日志
RDS for SQL Server实例将默认开启SQL审计功能,并且不支持关闭。SQL审计功能会将对服务级、数据库级、表级的主要变更操作记录进审计日志文件,方便用户查看并下载。
使用RDS for SQL Server Audit 功能,您可以对服务器级别和数据库级别事件组以及各个事件进行审核,RDS for SQL Server审核包括零个或多个审核操作项目。表1介绍了服务器级审核操作组,并提供了适用的等效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版本不涉及)。 |
查看审计日志
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域。
- 单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
- 在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“概览”页签。
- 在左侧导航栏单击“运行日志”页签下,选择“下载”页签。 ,在
- 在“下载”页面,记录所生成的审计日志文件名。
图1 RDS for SQL Server审计日志
审计日志文件名称以RDSAudit开头,会自动添加GUID和时间戳组合为文件名。
- 通过SQL Server客户端连接目标实例,具体操作请参见通过公网连接SQL Server实例。
- 目标实例连接成功后,通过执行如下sql查看审计日志详情。
select * from msdb.dbo.rds_fn_get_audit_file(file_pattern, initial_file_name, audit_record_offset)
表2 参数说明 参数
说明
file_pattern
指定要读取的审核文件集目录(或路径)和文件名。
initial_file_name
指定审核文件集中要开始读取审核记录的特定文件的路径和名称。
audit_record_offset
指定一个已知位置,该位置包含initial_file_name指定的文件。
查看审计日志详情,示例如下:
select * from msdb.dbo.rds_fn_get_audit_file('D:\ServerAudit\audit\*.sqlaudit', default, default)
图2 审计日志详情
下载审计日志
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域。
- 单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
- 在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“概览”页签。
- 在左侧导航栏单击“运行日志”页签下,选择“下载”页签。 ,在
- 选择目标日志文件,单击操作列中的“下载”。
- 系统会在“下载”弹出框中自动加载下载准备任务,加载时长受日志文件大小及网络环境影响。
- 下载准备过程中,状态显示为“准备中...”。
- 下载准备完成,状态显示为“准备完成”。
- 下载准备工作失败,状态显示为“异常”。
- 在“下载”弹出框中,对于“准备完成”的日志文件,单击“确定”,下载审计日志。单击“取消”,则不下载审计日志文件,直接返回下载页签。
下载链接有效期为5分钟。如果超时,提示用户下载链接已失效,关闭窗口后执行6重新下载日志文件。
- 系统会在“下载”弹出框中自动加载下载准备任务,加载时长受日志文件大小及网络环境影响。