更新时间:2024-03-25 GMT+08:00

开启SQL审计日志

当您开通SQL审计功能,系统会将所有的SQL操作记录下来存入日志文件,方便用户下载并查询。

RDS for MySQL默认关闭SQL审计功能,打开可能会有一定的性能影响,本章节指导您如何打开、修改或关闭SQL审计日志。

  • 主实例和只读实例都支持开启SQL审计日志。
  • 审计日志使用UTC时间,不受时区配置的影响。
  • 审计日志开通后,系统会将SQL操作记录下来,生成的审计日志文件会暂存在本地,随后上传到OBS并保存在备份存储空间。如果审计日志的大小超过了备份空间容量,就会按照超出的部分进行计费。
  • 审计日志清理周期为1小时。修改审计日志的保留天数,1个小时后开始清理过期的审计日志。
  • 审计日志开通后,在业务高峰期可能会产生大量的审计日志,导致本地暂存较多的日志文件,有磁盘打满风险,建议同步开启磁盘自动扩容

支持的数据库版本

仅如下版本支持SQL审计功能。如果您的数据库引擎版本较低,请参考升级内核小版本升级到最新版本。
  • 对于RDS for MySQL 5.6云盘实例,支持5.6.43及其以上版本。
  • 对于RDS for MySQL 5.7云盘实例,支持5.7.23及其以上版本。
  • 支持RDS for MySQL 8.0版本。

约束限制

高可用只读如果出现异常,在备只读顶替期间的审计日志不可见。

对于“拉美-墨西哥城二”区域,如需开通SQL审计功能,请联系客服申请。

开启SQL审计日志

  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域和项目。
  3. 单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
  4. 在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“基本信息”页签。
  5. 在左侧导航栏单击“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,超过的部分会被截断。
  1. 登录管理控制台
  2. 单击管理控制台左上角的,选择区域和项目。
  3. 单击页面左上角的,选择“数据库 > 云数据库 RDS”,进入RDS信息页面。
  4. 在“实例管理”页面,选择目标实例,单击实例名称,进入实例的“基本信息”页签。
  5. 在左侧导航栏单击“SQL审计”
  6. 单击,配置日志记录上传LTS。
  7. 在下拉框分别选择LTS日志组和日志流,单击“确定”。

    图2 LTS审计日志配置