VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

查看审计结果

前提条件

  • 审计功能总开关已开启。(参数audit_enabled。)
  • 需要审计的审计项开关已开启。(参见日志参考。)
  • 数据库正常运行,并且对数据库执行了一系列增、删、改、查操作,保证在查询时段内有审计结果产生。
  • 数据库各个节点审计日志单独记录。

背景信息

  • 只有拥有AUDITADMIN属性的用户才可以查看审计记录。有关数据库用户及创建用户的办法请参见用户

  • 审计查询命令是数据库提供的sql函数pg_query_audit,其原型为:

    pg_query_audit(timestamptz startime,timestamptz endtime,audit_log)
    

    参数startime和endtime分别表示审计记录的开始时间和结束时间,audit_log表示所查看的审计日志信息所在的物理文件路径,当不指定audit_log时,默认查看连接当前实例的审计日志信息。

    startime和endtime的差值代表要查询的时间段,其有效值为从startime日期中的00:00:00开始到endtime日期中的23:59:59之间的任何值。请正确指定这两个参数,否则将查不到需要的审计信息。

    pg_query_audit函数的返回字段如下所述:

    名称 类型 描述
    time timestamp with time zone 操作时间
    type text 操作类型
    result text 操作结果
    userid oid 用户id
    username text 执行操作的用户名
    database text 数据库名称
    client_conninfo text 客户端连接信息
    object_name text 操作对象名称
    detail_info text 执行操作详细信息
    node_name text 节点名称
    thread_id text 线程id
    local_port text 本地端口
    remote_port text 远端端口

操作步骤

1、以安装Vastbase的操作系统用户(以vastbase为例)登录数据库主节点。

2、使用如下命令连接数据库。

vsql -r

3、查询审计记录。

由于审计内容较多,为了更加直观的显示,开启列式显示扩展输出。

\x on

查看审计记录。(需要确保指定的查询时段内有审计结果产生。)

select * from pg_query_audit('2023-01-04 10:05:00','2023-01-04 11:00:00');

查询结果如下:

-[ RECORD 1 ]---+------------------------------------------------------------------
time            | 2023-01-04 10:06:11+08
type            | login_success
result          | ok
userid          | 10
username        | vastbase
database        | vastbase
client_conninfo | gs_clean@::1@SSL_OFF
object_name     | vastbase
detail_info     | login db(vastbase) success,the current user is:vastbase, SSL=off
node_name       | node1
thread_id       | 47496107263744@726113171411843
local_port      | 5432
remote_port     | 48558
privilege       | (ACL_CONNECT)

该条记录表明,用户vastbase在2023-01-04 10:06:11+08的时间点登录数据库vastbase。其中client_conninfo字段在log_hostname启动且IP连接时,字符@后显示反向DNS查找得到的主机名。

对于登录操作的记录,审计日志detail_info结尾会记录SSL信息,SSL=on表示客户端通过SSL连接,SSL=off表示客户端没有通过SSL连接。

审计记录描述

对于不同类型的操作detail_info信息会有差异,下面展示几种常见的审计操作。

审计策略

下图显示的是触发审计策略的一条审计记录,detail_info字段表示执行操作的详细信息,以下是对detail_info各字段的解释说明:

  • omm2:触发审计策略的用户名称。
  • vsql:触发审计策略时连接数据库的application_name。
  • local:触发审计策略时连接数据库的ip。
  • vastbase:触发审计策略时的数据库名称。
  • SELECT:审计的时间类型。
  • 32942:触发的审计策略oid。
  • normally:触发审计策略的响应动作。

数据库启停

下图显示数据库的启停审计,detail_info分别表示:

  • system_stop:使用fast方式关闭数据库。

    fast方式:不等待客户端中断连接,所有活跃事务都被回滚并且客户端都被强制断开,然后服务器将被关闭。

  • system_start:启动数据库,端口号5432。

用户登录、注销审计

如下图所示显示对用户jim登录数据库vastbase的审计。

detail_info分别表示用户jim登录vastbase数据库失败或者成功。SSL=off表示客户端没有通过SSL连接。

DML、SELECT审计

如下所示是对数据库DML操作的审计。

SET审计

如下图所示展示的是对SET操作的审计。

数据库对象审计

如下图所示是对数据库对象user的审计。

事务ID审计

用户锁定和解锁审计