更新时间:2024-03-18 GMT+08:00
分享

转储数据库审计日志

GaussDB(DWS) 记录您的数据库中的连接和用户活动相关信息。这些审计日志信息有助于您监控数据库以确保安全或进行故障排除或定位历史操作记录。当前这些审计日志默认存储于数据库中,您还可以将审计日志转储到OBS中使负责监控数据库中活动的用户更方便的查看这些日志信息。

  • 非OBS场景下,此功能不可用。
  • 经典变更规格、增删CN等变更CN场景会导致数据丢失,建议在执行变更期间关闭审计日志转储。
  • CN节点故障可能导致丢失该节点数据。
  • 开启审计日志转储后,如果保存的审计日志大小超过1G就会转储,这可能会导致查询结果异常,用户请谨慎操作。
  • 开启审计日志转储目录分区版本支持:
    • 针对8.1.3.x集群仅8.1.3.322及以上集群版本支持,针对8.2.0.x集群仅8.2.0.106及以上集群版本支持,默认打开审计日志转储目录分区且不支持关闭。
    • 历史版本需联系技术支持人员升级使用,升级后用户需手动打开。

前提条件

GaussDB(DWS) 集群创建成功后,您可以为集群开启审计日志转储,将审计日志转储到OBS中,方便查看。开启审计日志转储前需满足如下条件:

  • 已创建用于存储审计日志的OBS桶,具体操作请参见《对象存储服务控制台指南》中的创建桶章节。

开启审计日志转储

  1. 登录GaussDB(DWS) 管理控制台。
  2. 在左侧导航栏中,单击“集群 > 专属集群”
  3. 在集群列表中,单击您想要开启审计日志转储的集群的名称,然后在左侧导航栏单击“安全设置”
  4. “审计配置”区域中,开启审计日志转储。

    表示开启状态。表示关闭状态。

    每个区域的每个项目首次开启审计日志转储功能时,系统将提示您需创建名称为“DWSAccessOBS”的委托,委托创建成功后,GaussDB(DWS) 可以将审计日志转储至OBS中。

    默认情况下,只有华为云账号或拥有Security Administrator权限的用户才具备查询委托和创建委托的权限。账号中的IAM用户,默认没有查询委托和创建委托的权限,此时需联系有权限的用户在当前页面完成对GaussDB(DWS) 的委托授权。

    图1 开启审计日志转储

    • 转储目录分区:支持审计日志转储时可采用OBS外表读取,转储至OBS时审计日志会采用csv格式且使用gz格式压缩。
    • OBS桶:存储审计数据的OBS桶名称。如果没有可选择的OBS桶,可以单击“查看OBS桶”进入OBS管理控制台创建新的OBS桶,具体操作请参见《对象存储服务控制台指南》中的创建桶章节。
    • OBS路径:在OBS中存储审计文件的自定义目录。多级目录可用“/”进行分隔,不能以“/”开头。路径取值范围:1~50个字符。如果填写的OBS路径不存在时,系统会先创建该OBS路径再进行转储。
    • 转储周期(分):根据用户配置的时间,周期性的将数据转储到OBS中。取值范围:5~43200。单位为分钟。

  5. 单击“应用”

    “配置状态”显示为“应用中”,表示系统正在保存配置。

    等待一段时间后再次刷新“配置状态”,当显示为“已同步”,表示已保存配置并生效。

修改审计日志转储

开启审计日志转储后,您可以对转储配置进行修改,如修改日志存放的OBS桶和路径,转储周期等。

修改审计日志转储具体操作如下:

  1. 登录GaussDB(DWS) 管理控制台。
  2. 在左侧导航栏中,单击“集群 > 专属集群”
  3. 在集群列表中,单击您想要修改审计日志转储的集群的名称,然后在左侧导航栏单击“安全设置”
  4. “审计配置”区域中,修改审计日志转储配置。
  5. 单击“应用”

    “配置状态”显示为“应用中”,表示系统正在保存配置。

    等待一段时间后再次刷新“配置状态”,当显示为“已同步”,表示已保存配置并生效。

查看审计日志转储记录

开启审计日志转储后,您可以通过OBS查看转储的审计日志。

查看审计日志转储记录具体操作如下:

  1. 登录GaussDB(DWS) 管理控制台。
  2. 在左侧导航栏中,单击“集群 > 专属集群”
  3. 在集群列表中,单击您想要查看审计日志转储记录的集群的名称,然后在左侧导航栏单击“安全设置”
  4. “审计配置”区域中,单击“查看转储记录”
  5. 在弹出的“审计日记转储记录”弹出框中,单击“查看OBS桶”,进入OBS管理控制台。
  6. 选择日志存放的OBS桶和文件夹进入查看具体的日志文件。

    您可以选择将日志文件下载,解压并打开查看。审计日志文件字段说明如下。

    表1 审计日志文件字段说明

    名称

    类型

    描述

    begintime

    timestamp with time zone

    操作的执行开始时间。

    endtime

    timestamp with time zone

    操作的执行结束时间。

    operation_type

    text

    操作类型,具体类型见表2

    audit_type

    text

    审计类型,具体类型见表3

    result

    text

    操作结果。

    username

    text

    执行操作的用户名。

    database

    text

    数据库名称。

    client_conninfo

    text

    客户端连接信息,即gsql,jdbc或odbc。

    object_name

    text

    操作对象名称。

    command_text

    text

    操作的执行命令。

    detail_info

    text

    执行操作详细信息。

    transaction_xid

    text

    事务ID。

    query_id

    text

    查询ID。

    node_name

    text

    节点名称。

    thread_id

    text

    线程ID。

    local_port

    text

    本地端口。

    remote_port

    text

    远端端口。

    表2 operation_type操作类型项

    操作类型

    描述

    audit_switch

    表示对用户打开和关闭审计日志操作场景进行审计。

    login_logout

    表示对用户登录和登出操作场景进行审计。

    system

    表示对系统的启停、实例切换操作场景进行审计。

    sql_parse

    表示对SQL语句解析场景进行审计。

    user_lock

    表示对用户锁定和解锁操作的场景进行审计。

    grant_revoke

    表示对用户权限授予和回收操作场景进行审计。

    violation

    表示对用户访问存在越权的场景进行审计。

    ddl

    表示对DDL操作场景进行审计,因为DDL操作会根据操作对象进行更细粒度控制,仍然沿用审计开关audit_system_object,即由audit_system_object控制对哪些对象的DDL操作进行审计(此处不配置ddl,只要配置了audit_system_object,审计也会生效)。

    dml

    表示对DML操作场景进行审计。

    select

    表示对SELECT操作场景进行审计。

    internal_event

    表示对内部事件操作场景进行审计。

    user_func

    表示对用户自定义函数、存储过程、匿名块操作场景进行审计。

    special_func

    表示对特殊函数调用操作场景进行审计,特殊函数包括:pg_terminate_backend和pg_cancel_backend。

    copy

    表示对COPY操作场景进行审计。

    set

    表示对SET操作场景进行审计。

    transaction

    表示对事务操作场景进行审计。

    vacuum

    表示对VACUUM操作场景进行审计。

    analyze

    表示对ANALYZE操作场景进行审计。

    cursor

    表示对游标操作的场景进行审计。

    anonymous_block

    表示对匿名块操作场景进行审计。

    explain

    表示对EXPLAIN操作场景进行审计。

    show

    表示对SHOW操作场景进行审计。

    lock_table

    表示对锁表操作场景进行审计。

    comment

    表示对COMMENT操作场景进行审计。

    preparestmt

    表示对PREPARE、EXECUTE、DEALLOCATE操作场景进行审计。

    cluster

    表示对CLUSTER操作场景进行审计。

    constraints

    表示对CONSTRAINTS操作场景进行审计。

    checkpoint

    表示对CHECKPOINT操作场景进行审计。

    barrier

    表示对BARRIER操作场景进行审计。

    cleanconn

    表示对CLEAN CONNECTION操作场景进行审计。

    seclabel

    表示对安全标签操作进行审计。

    notify

    表示对通知操作进行审计。

    load

    表示对加载操作进行审计。

    表3 audit_type审计类型项

    审计类型

    描述

    audit_open/audit_close

    表示审计类型为打开和关闭审计日志操作。

    user_login/user_logout

    表示审计类型为用户登录/退出成功的操作和用户。

    system_start/system_stop/system_recover/system_switch

    表示审计类型为系统的启停、实例切换操作。

    sql_wait/sql_parse

    表示审计类型为SQL语句解析。

    lock_user/unlock_user

    表示审计类型为用户锁定和解锁成功的操作。

    grant_role/revoke__role

    表示审计类型为用户权限授予和回收的操作。

    user_violation

    表示审计类型为用户访问存在越权的操作。

    ddl_数据库对象

    表示审计类型为DDL操作,因为DDL操作由会根据操作对象进行更细粒度控制,仍然沿用审计开关audit_system_object,即由audit_system_object控制对哪些对象的DDL操作进行审计(此处不配置ddl,只要配置了audit_system_object,审计也会生效)。

    例如:ddl_sequence表示审计类型为序列相关操作。

    dml_action_insert/dml_action_delete/dml_action_update/dml_action_merge/dml_action_select

    表示审计类型为INSERT、DELETE、UPDATE、MERGE等DML操作。

    internal_event

    表示审计类型为内部事件。

    user_func

    表示审计类型为用户自定义函数、存储过程、匿名块操作。

    special_func

    表示审计类型为特殊函数调用操作,特殊函数包括:pg_terminate_backend和pg_cancel_backend。

    copy_to/copy_from

    表示审计类型为COPY相关操作。

    set_parameter

    表示审计类型为SET操作。

    trans_begin/trans_commit/trans_prepare/trans_rollback_to/trans_release/trans_savepoint/trans_commit_prepare/trans_rollback_prepare/trans_rollback

    表示审计类型为事务相关操作。

    vacuum/vacuum_full/vacuum_merge

    表示审计类型为VACUUM相关操作。

    analyze/analyze_verify

    表示审计类型为ANALYZE相关操作。

    cursor_declare/cursor_move/cursor_fetch/cursor_close

    表示审计类型为游标相关操作。

    codeblock_execute

    表示审计类型为匿名块。

    explain

    表示审计类型为EXPLAIN操作。

    show

    表示审计类型为SHOW操作。

    lock_table

    表示审计类型为锁表操作。

    comment

    表示审计类型为COMMENT操作。

    prepare/execute/deallocate

    表示审计类型为PREPARE、EXECUTE或DEALLOCATE操作。

    cluster

    表示审计类型为CLUSTER操作。

    constraints

    表示审计类型为CONSTRAINTS操作。

    checkpoint

    表示审计类型为CHECKPOINT操作。

    barrier

    表示审计类型为BARRIER操作。

    cleanconn

    表示审计类型为CLEAN CONNECTION操作。

    seclabel

    表示审计类型为安全标签操作。

    notify

    表示审计类型为通知操作。

    load

    表示审计类型为加载操作。

关闭审计日志转储

审计日志转储开启后,如果您不想将审计日志转储到OBS中,您可以将审计日志转储关闭。

关闭审计日志转储具体操作如下:

  1. 登录GaussDB(DWS) 管理控制台。
  2. 在左侧导航栏中,单击“集群 > 专属集群”
  3. 在集群列表中,单击您想要关闭审计日志转储的集群的名称,然后在左侧导航栏单击“安全设置”
  4. “审计配置”区域中,关闭审计日志转储开关。

    表示关闭状态。

  5. 单击“应用”

    “配置状态”显示为“应用中”,表示系统正在保存配置。

    等待一段时间后再次刷新“配置状态”,当显示为“已同步”,表示已保存配置并生效。

分享:

    相关文档

    相关产品