开启SQL审计日志
当您开通SQL审计功能,系统会将所有的SQL操作记录下来存入日志文件,方便用户下载并查询。
RDS for MySQL默认关闭SQL审计功能,打开可能会有一定的性能影响,本章节指导您如何打开、修改或关闭SQL审计日志。
- 主实例和只读实例都支持开启SQL审计日志。
- 审计日志使用UTC时间,不受时区配置的影响。
- 审计日志开通后,系统会将SQL操作记录下来,生成的审计日志文件会暂存在本地,随后上传到OBS并保存在备份存储空间。如果审计日志的大小超过了备份空间容量,就会按照超出的部分进行计费。
- 审计日志清理周期为1小时。修改审计日志的保留天数,1个小时后开始清理过期的审计日志。
- 审计日志开通后,在业务高峰期可能会产生大量的审计日志,导致本地暂存较多的日志文件,有磁盘打满风险,建议同步开启磁盘自动扩容。
支持的数据库版本
- 对于RDS for MySQL 5.6云盘实例,支持5.6.43及其以上版本。
- 对于RDS for MySQL 5.7云盘实例,支持5.7.23及其以上版本。
- 支持RDS for MySQL 8.0版本。
约束限制
高可用只读如果出现异常,在备只读顶替期间的审计日志不可见。
对于“拉美-墨西哥城二”区域,如需开通SQL审计功能,请联系客服申请。
开启SQL审计日志
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域。
- 单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
- 在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“概览”页签。
- 在左侧导航栏单击“SQL审计”,单击“设置SQL审计”,在弹出框中设置SQL审计日志保留策略,单击“确定”,保存设置策略。
开启或修改SQL审计:
- 将单击设置为,开启SQL审计日志保留策略。
- 保留天数默认为7天,可设置范围为1~732天。
图1 设置SQL审计
目前自定义操作项功能仅支持华北-北京四、华南-广州、中国-香港区域,其他区域如需使用该功能,请联系客服申请开通。
MySQL客户端使用PrepareStatement和定时任务执行的SQL语句分别属于PREPARED_STATEMENT和CREATE大类,JDBC使用PrepareStatement产生的SQL语句无法过滤。
开启SQL审计后,支持数据定义(DDL)、数据操作(DML)、数据控制(DCL)、以及其他操作类型的权限,具体如下:
表1 DDL操作类型的权限 类型
具体权限
备注
CREATE
create_db, create_event, create_function, create_index, create_procedure, create_table, create_trigger, create_udf, create_view
-
ALTER
alter_db, alter_db_upgrade, alter_event, alter_function, alter_instance, alter_procedure, alter_table, alter_tablespace
2024-01-26开始ALTER类型不支持alter_user权限。
DROP
drop_db, drop_event, drop_function, drop_index, drop_procedure, drop_table, drop_trigger, drop_view
-
RENAME
rename_table
-
TRUNCATE
truncate
-
REPAIR
repair
2024-01-26新增REPAIR类型。
OPTIMIZE
optimize
2024-01-26新增OPTIMIZE类型。
表2 DML操作类型的权限 类型
具体权限
备注
INSERT
insert, insert_select
-
DELETE
delete, delete_multi
-
UPDATE
update, update_multi
2024-01-26新增update_multi权限。
REPLACE
replace, replace_select
-
SELECT
select
-
表3 DCL操作类型的权限 类型
具体权限
备注
CREATE_USER
create_user
-
DROP_USER
drop_user
-
RENAME_USER
rename_user
-
GRANT
grant_roles, grant
2024-01-26新增grant_roles权限。
REVOKE
revoke, revoke_all, revoke_roles
2024-01-26新增revoke_roles权限。
ALTER_USER
alter_user
2024-01-26新增ALTER_USER类型。
ALTER_USER_DEFAULT_ROLE
alter_user_default_role
2024-01-26新增ALTER_USER_DEFAULT_ROLE类型。
表4 其他操作类型的权限 类型
具体权限
备注
BEGIN/COMMIT/ROLLBACK
begin, commit, release_savepoint, rollback, rollback_to_savepoint, savepoint
-
PREPARED_STATEMENT
execute_sql,prepare_sql, dealloc_sql
2024-01-26新增dealloc_sql权限。
CALL_PROCEDURE
call_procedure
2024-01-26新增CALL_PROCEDURE类型。
KILL
kill
2024-01-26新增KILL类型。
SET_OPTION
set_option
2024-01-26新增SET_OPTION类型。
CHANGE_DB
change_db
2024-01-26新增CHANGE_DB类型。
UNINSTALL_PLUGIN
uninstall_plugin
2024-01-26新增UNINSTALL_PLUGIN类型。
INSTALL_PLUGIN
install_plugin
2024-01-26新增INSTALL_PLUGIN类型。
SHUTDOWN
shutdown
2024-01-26新增SHUTDOWN类型。
SLAVE_START
slave_start
2024-01-26新增SLAVE_START类型。
SLAVE_STOP
slave_stop
2024-01-26新增SLAVE_STOP类型。
LOCK_TABLES
lock_tables
2024-01-26新增LOCK_TABLES类型。
UNLOCK_TABLES
unlock_tables
2024-01-26新增UNLOCK_TABLES类型。
FLUSH
flush
2024-01-26新增FLUSH类型。
XA
xa_commit,xa_end,xa_prepare,xa_recover,xa_rollback,xa_start
2024-01-26新增XA类型。
关闭SQL审计:
将设置为单击,关闭该SQL审计。
勾选“确认关闭审计日志后,所有审计日志文件将立即删除。”复选框,表示同意删除审计日志。SQL审计关闭后,所有审计日志都会被立即删除,不可恢复,请您谨慎操作。
配置LTS审计日志
- 如需配置LTS审计日志,请联系客服申请权限。
- 访问日志提供了实例所请求的所有详细日志,日志存在LTS云日志服务中。
- 配置完成后不会立即生效,存在10分钟左右的时延,请知悉。
- LTS审计日志配置成功后,会产生一定费用,具体计费可参考LTS的定价详情。
- 在您进行LTS审计日志配置后,会默认上传所有审计策略。
- 同时开启SQL审计和开启审计日志上传LTS:
- 开启SQL审计和LTS审计日志开关都会生成审计日志,请注意审计日志中敏感信息没有进行脱敏处理。
- 已开启SQL审计开关,此时再开启LTS审计日志,审计日志将延续已有的SQL操作类型策略,且会在原有的审计日志计费基础上增加您LTS的审计日志收费。原有的审计日志费用会在您关闭原有审计策略后终止。
- 已开启SQL审计开关,此时再开启LTS审计日志,出于对实例的正常运行考虑,建议保留原有审计策略一段时间,待LTS审计日志运转正常后,再关闭原有审计策略。
- 以下场景上传到LTS的审计日志记录可能会有丢失。若您的审计日志开关为打开的状态,您可以通过OBS下载全量的审计日志文件。
- 在业务量大、审计日志产生速度过快或者LTS服务故障等极端情况下,有较小概率会丢失部分日志记录。
- 当前上传LTS的单条审计日志记录上限为512KB,超过的部分会被截断。
- 登录管理控制台。
- 单击管理控制台左上角的,选择区域。
- 单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
- 在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“概览”页签。
- 在左侧导航栏单击“SQL审计”。
- 单击,配置日志记录上传LTS。
- 在下拉框分别选择LTS日志组和日志流,单击“确定”。
图2 LTS审计日志配置