VastbaseG100

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

Menu

查看审计结果

前提条件

  • 审计功能总开关已开启。

  • 需要审计的审计项开关已开启。

  • 数据库正常运行,并且对数据库执行了一系列增、删、改、查操作,保证在查询时段内有审计结果产生。

  • 数据库各个节点审计日志单独记录。

背景信息

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

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

    pg_query_audit(timestamptz startime,timestamptz endtime,audit_log)
    

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

    通过sql函数pgxc_query_audit可以查询数据库主节点的审计日志,其原型为:

    pgxc_query_audit(timestamptz startime,timestamptz endtime)
    

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

审计结果包含操作对象的数据库权限,字段名为privilege,显示方式为字符串格式,权限为下面一项或几项:

参数 参数说明
ACL_INSERT 插入权限
ACL_SELECT 查询权限
ACL_UPDATE 更新权限
ACL_DELETE 删除权限
ACL_TRUNCATE TRUNCATE权限
ACL_REFERENCES REFERENCES权限
ACL_TRIGGER 触发器权限
ACL_EXECUTE 执行权限
ACL_USAGE 用户使用权限
ACL_CREATE 创建权限
ACL_CREATE_TEMP 创建临时的权限
ACL_COMMECT 连接权限
ACL_READ pg_directory目录读权限
ACL_WRITE pg_directory目录写权限
ACL_NO_RIGHTS 无权限
操作步骤

步骤1 以操作系统用户vastbase登录数据库主节点。

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

vsql -d vastbase -p 5432

vastbase为需要连接的数据库名称,5432为数据库主节点的端口号。

连接成功后,系统显示类似如下信息:

vsql ((Vastbase 2.0 build 290d125f) compiled at 2020-05-08 02:59:43 commit 2143 last mr 131 
Non-SSL connection (SSL connection is recommended when requiring high-security) 
Type "help" for help. 
 
vastbase=# 

步骤3 查询审计记录。

vastbase=# SELECT * FROM pg_query_audit('2015-07-15 08:00:00','2015-07-15 09:47:33');

查询结果如下:

          time          |     type      | result | username |    database    | client_conninfo |  object_name   |                          detail_info                | node_name |            thread_id            | local_port | remote_port | privilege
------------------------+---------------+--------+----------+----------------+-----------------+----------------+---------------------------------------------------------------+-----------+---------------------------------+------------+------------- 
 2015-07-15 08:03:55+08 | login_success | ok     | vastbase | vastbase       | gs_clean@::1    | vastbase       | login db(vastbase) success,the current user is:vastbase       | cn_5003   | 139808902997776@490233835920483 | 9000       | 55805 | (ACL_CONNECT)

该条记录表明,用户vastbase在2015-07-15 08:03:55+08登录数据库vastbase。其中client_conninfo字段在log_hostname启动且IP连接时,字符@后显示反向DNS查找得到的主机名。Privilege为模式对象相应的的数据库权限字段。

步骤4 查询数据库主节点审计记录。

vastbase=# SELECT * FROM pgxc_query_audit('2019-01-10 17:00:00','2019-01-10 19:00:00') where type = 'login_success' and username = 'user1';

查询结果如下:

          time          |     type      | result | username | database | client_conninfo | object_name |                     detail_info                      |  node_name   |            thread_id            
local_port | remote_port  |  privilege
------------------------+---------------+--------+----------+----------+-----------------+-------------+------------------------------------------------------+--------------+---------------------------------+- 
-----------+------------- 
 2019-01-10 18:06:08+08 | login_success | ok     | user1    | vastbase | vsql@[local]    | vastbase    | login db(vastbase) success,the current user is:user1 | coordinator1 | 139965149210368@600429968516954 |  
17560      | null | (ACL_CONNECT)
 2019-01-10 18:06:22+08 | login_success | ok     | user1    | vastbase | vsql@[local]    | vastbase    | login db(vastbase) success,the current user is:user1 | coordinator1 | 139965149210368@600429982697548 |  
17560      | null | (ACL_CONNECT)
 2019-01-10 18:06:54+08 | login_success | ok     | user1    | vastbase | vsql@[local]    | vastbase    | login db(vastbase) success,the current user is:user1 | coordinator2 | 140677694355200@600430014804280 |  
17562      | null | (ACL_CONNECT)
(3 rows)

查询结果显示,用户user1在数据库主节点1和数据库主节点2的成功登录记录。