更新时间:2022-07-29 GMT+08:00
查看审计结果
前提条件
- 需要审计的审计项开关已开启。各审计项及其开启办法,请参考设置操作信息审计章节。
- 数据库正常运行,并且对数据库执行了一系列增、删、改、查操作,保证在查询时段内有审计结果产生。
- 数据库各个节点审计日志单独记录,如果使用了LVS负载管理机制,需根据LVS日志追溯到具体的执行节点,并直接连接该节点查询相关审计日志。
背景信息
- 只有拥有AUDITADMIN属性的用户才可以查看审计记录。有关数据库用户及创建用户的办法请参见用户。
- 审计查询命令是数据库提供的sql函数pg_query_audit,其原型为:
pg_query_audit(timestamptz startime,timestamptz endtime,audit_log)
参数startime和endtime分别表示审计记录的开始时间和结束时间,audit_log表示所查看的审计日志信息所在的物理文件路径,当不指定audit_log时,默认查看连接当前实例的审计日志信息。
通过sql函数pgxc_query_audit可以查询所有CN节点的审计日志,其原型为:
pgxc_query_audit(timestamptz startime,timestamptz endtime)
startime和endtime的差值代表要查询的时间段,其有效值为从startime日期中的00:00:00开始到endtime日期中的23:59:59之间的任何值。请正确指定这两个参数,否则将查不到需要的审计信息。
操作步骤
- 使用SQL客户端工具连接数据库。
- 查询审计记录。
1
SELECT * FROM pg_query_audit('2021-02-23 21:49:00','2021-02-23 21:50:00');
查询结果如下:begintime | endtime | operation_type | audit_type | result | username | database | client_conninfo | object_name | command_text | detail_info | transaction_xid | query_id | node_name | thread_id | local_port | remote_port ---------------------------+---------------------------+----------------+------------+--------+------------+----------+-----------------+-------------+-----------------+------------------------------------------------------------------+-----------------+----------+--------------+------------------------------+------------+-------------q 2021-02-23 21:49:57.76+08 | 2021-02-23 21:49:57.82+08 | login_logout | user_login | ok | dbadmin | postgres | gsql@[local] | postgres | login db | login db(postgres) successfully, the current user is: ommdbadmin | 0 | 0 | coordinator1 | 140324035360512@667403397820909 | 27777 |
该条记录表明,用户dbadmin在2021-02-23 21:49:57.82+08登录数据库postgres。其中client_conninfo字段在log_hostname启动且IP连接时,字符@后显示反向DNS查找得到的主机名。
- 查询所有CN节点审计记录。
1
SELECT * FROM pgxc_query_audit('2021-02-23 22:05:00','2021-02-23 22:07:00') where audit_type = 'user_login' and username = 'user1';
查询结果如下:
begintime | endtime | operation_type | audit_type | result | username | database | client_conninfo | object_name | command_text | detail_info | transaction_xid | query_id | node_name | thread_id | local_port | remote_port ----------------------------+----------------------------+----------------+------------+--------+----------+----------+-----------------+-------------+-----------------+-------------------------------------------------------------+-----------------+----------+--------------+---------------------------------+------------+------------- 2021-02-23 22:06:22.219+08 | 2021-02-23 22:06:22.271+08 | login_lgout | user_login | ok | user1 | postgres | gsql@[local] | postgres | login db | login db(postgres) successfully, the current user is: user1 | 0 | 0 | coordinator2 | 140689577342720@667404382271356 | 27782 | 2021-02-23 22:05:51.697+08 | 2021-02-23 22:05:51.749+08 | login_lgout | user_login | ok | user1 | postgres | gsql@[local] | postgres | login db | login db(postgres) successfully, the current user is: user1 | 0 | 0 | coordinator1 | 140525048424192@667404351749143 | 27777 |
查询结果显示,用户user1在CN1和CN2的成功登录记录。
父主题: 管理数据库安全