查看数据库审计日志 本章节主要介绍查看数据库审计日志。 前提条件 审计功能总开关auditenabled已开启。(auditenabled默认值为ON,若关闭请参考修改数据库参数设置为ON)。 已配置需要审计的审计项。各审计项及其开启办法,请参考设置数据库审计日志。 数据库正常运行,并且对数据库执行了一系列增、删、改、查操作,保证在查询时段内有审计结果产生。 数据库各个节点审计日志单独记录。 只有拥有AUDITADMIN属性的用户才可以查看审计记录。 查看数据库审计日志方式 方式一:由于审计日志会占用一定磁盘空间,为了防止本地磁盘文件过大,DWS支持审计日志转储,用户可以开启“开启审计日志转储”功能,将审计日志转储到OBS(用户需创建用于存储审计日志的OBS桶)中进行查看或下载,详细内容请参考转储数据库审计日志章节的 查看审计日志转储记录。 方式二:通过依赖于云日志服务LTS的“集群日志管理”功能查看采集的审计数据库日志或进行日志下载,详细内容请参考集群日志管理查看集群日志。 方式三:数据库的审计日志默认存储于数据库中,连接集群后,使用pgqueryaudit函数进行查看。详细内容请参考下方 使用pgqueryaudit函数查看数据库审计日志。 使用pgqueryaudit函数查看数据库审计日志 1. 使用SQL客户端工具成功连接集群,连接方式请参考连接集群。 2. 使用函数pgqueryaudit查询当前CN节点的审计日志,其语法为: pgqueryaudit(timestamptzstartime ,timestamptz endtime , auditlog ) 参数startime和endtime分别表示审计记录的开始时间和结束时间,auditlog表示所查看的审计日志信息所在的物理文件路径,当不指定auditlog时,默认查看连接当前实例的审计日志信息。 例如,查看指定时间段当前CN节点审计记录。 SELECT FRO Mpgqueryaudit(' 20210223 21:49:00 ',' 2021022321:50:00'); 查询结果如下: begintime endtime operationtype audittype result username database clientconninfo objectname commandtext detailinfo transactionxid queryid nodename threadid localport remoteport +++ ++++++ ++ +++++ q 20210223 21:49:57.76+08 20210223 21:49:57.82+08 loginlogout userlogin ok dbadmin gaussdb gsql@[local] gaussdb login db login db(gaussdb) successfully, the current user is: dbadmin 0 0 coordinator1 140324035360512@667403397820909 27777 该条记录表明,用户dbadmin在20210223 21:49:57.82+08登录数据库gaussdb。其中clientconninfo字段在loghostname启动且IP连接时,字符@后显示反向DNS查找得到的主机名。 3. 使用函数pgxcqueryaudit可以查询所有CN节点的审计日志,其语法为: pgxcqueryaudit(timestamptz startime,timestamptzendtime ) 例如,查看指定时间段所有CN节点审计记录。 ELECT FROM pgxcqueryaudit('20210223 22:05:00','20210223 22:07:00') where audittype 'userlogin' and username 'user1'; 查询结果如下: begintime endtime operationtype audittype result username database clientconninfo objectname commandtext detailinfo transactionxid queryid nodename threadid localport remoteport +++ ++++++ ++ ++++ 20210223 22:06:22.219+08 20210223 22:06:22.271+08 loginlgout userlogin ok user1 gaussdb gsql@[local] gaussdb login db 20221125 233 login db(gaussdb) successfully, the current user is: user1 0 0 coordinator2 140689577342720@667404382271356 27782 20210223 22:05:51.697+08 20210223 22:05:51.749+08 loginlgout userlogin ok user1 gaussdb gsql@[local] gaussdb login db login db(gaussdb successfully, the current user is: user1 0 0 coordinator1 140525048424192@667404351749143 27777 查询结果显示,用户user1在CN1和CN2的成功登录记录。