找回密码
 立即注册
首页 业界区 安全 PostgreSQL中利用pgaudit审计扩展记录SQL审计,以及使用 ...

PostgreSQL中利用pgaudit审计扩展记录SQL审计,以及使用fdw分析审计日志

讲怔 2025-8-3 14:29:31
1,pg_audit编译安装

参考:https://github.com/pgaudit/pgaudit
  1. --pgaudit 编译安装
  2. git clone https://github.com/pgaudit/pgaudit.git
  3. cd pgaudit/
  4. git checkout REL_16_STABLE --这里checkout出来postgresql16版本,中间的数字是PostgreSQL的大版本号,REL_15_STABLE,REL_16_STABLE,REL_17_STABLE等
  5. --如下是编译安装后相关文件的位置
  6. root@iZ7xv55xixens4mlf4jusqZ:/usr/local/postgresql_install_package/pgaudit# make install USE_PGXS=1 PG_CONFIG=/usr/local/pgsql16/server/bin/pg_config
  7. gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -fPIC -fvisibility=hidden -I. -I./ -I/usr/local/pgsql16/server/include/server -I/usr/local/pgsql16/server/include/internal  -D_GNU_SOURCE   -c -o pgaudit.o pgaudit.c
  8. gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Werror=vla -Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -Wno-format-truncation -Wno-stringop-truncation -O2 -fPIC -fvisibility=hidden -shared -o pgaudit.so pgaudit.o  -L/usr/local/pgsql16/server/lib    -Wl,--as-needed -Wl,-rpath,'/usr/local/pgsql16/server/lib',--enable-new-dtags  -fvisibility=hidden
  9. /usr/bin/mkdir -p '/usr/local/pgsql16/server/lib'
  10. /usr/bin/mkdir -p '/usr/local/pgsql16/server/share/extension'
  11. /usr/bin/mkdir -p '/usr/local/pgsql16/server/share/extension'
  12. /usr/bin/install -c -m 755  pgaudit.so '/usr/local/pgsql16/server/lib/pgaudit.so'
  13. /usr/bin/install -c -m 644 .//pgaudit.control '/usr/local/pgsql16/server/share/extension/'
  14. /usr/bin/install -c -m 644 .//pgaudit--16.1.sql .//pgaudit--16.0--16.1.sql  '/usr/local/pgsql16/server/share/extension/'
  15. root@iZ7xv55xixens4mlf4jusqZ:/usr/local/postgresql_install_package/pgaudit# ^C
  16. root@iZ7xv55xixens4mlf4jusqZ:/usr/local/postgresql_install_package/pgaudit#
  17. #postgresql.conf中添加动态库
  18. shared_preload_libraries = 'pg_stat_statements, pg_cron, pgaudit'        # (change requires restart)
  19. #重启postgresql实例
  20. systemctl restart postgresql9300
  21. #检查动态库是否生效
  22. show shared_preload_libraries;
  23. #检查相关扩展
  24. select name,setting from pg_settings where name like '%audit%';
  25. name                          |setting|
  26. ------------------------------+-------+
  27. pgaudit.log                   |none   |
  28. pgaudit.log_catalog           |on     |
  29. pgaudit.log_client            |off    |
  30. pgaudit.log_level             |log    |
  31. pgaudit.log_parameter         |off    |
  32. pgaudit.log_parameter_max_size|0      |
  33. pgaudit.log_relation          |off    |
  34. pgaudit.log_rows              |off    |
  35. pgaudit.log_statement         |on     |
  36. pgaudit.log_statement_once    |off    |
  37. pgaudit.role                  |       |
复制代码
 
2,pg_audit扩展创建 
  1. --#创建pg_audit扩展
  2. create extension pgaudit;
  3. drop extension pgaudit;
  4. set pgaudit.log = '';
  5. alter system set pgaudit.role = '';
  6. select pg_reload_conf();
  7. -- 基于库级别的审计
  8. ALTER DATABASE db01 SET pgaudit.log = 'read, write, ddl';
  9. -- 审计用户级别的审计
  10. alter system set pgaudit.role = 'appuser1,appuser2';
  11. select pg_reload_conf();
  12. select name,setting from pg_settings where name like '%audit%';
复制代码
3,pg_audit开启审计

查了网站的资料,基本上都是翻译pg_audit github上官方的文档,都没有说清楚到底怎么审计。
比如最常见的两种审计:1,记录某个库下的所有的操作;2,记录某个数据库用户的所有的操作
 
3.1 记录数据库用户的审计 

记录某个用户的所有操作行为
  1. 3.1. 基于数据库用户的审计:
  2. ALTER ROLE *** SET pgaudit.log = '***';
  3. --创建测试用户
  4. CREATE ROLE appuser WITH LOGIN PASSWORD '******';
  5. -- 授予连接权限
  6. GRANT CONNECT ON DATABASE db03 TO appuser;
  7. -- 授权使用某 schema(切换到DB03下执行)
  8. GRANT usage,create ON SCHEMA public TO appuser;
  9. alter default privileges in schema public GRANT all ON TABLES TO appuser;
  10. -- 授予连接权限
  11. GRANT CONNECT ON DATABASE db04 TO appuser;
  12. -- 授权使用某 schema(切换到DB04下执行)
  13. GRANT usage,create ON SCHEMA public TO appuser;
  14. alter default privileges in schema public GRANT all ON TABLES TO appuser;
  15. 对appuser开启审计,记录其所有操作(任务数据库下执行)
  16. ALTER ROLE appuser SET pgaudit.log = 'all';
  17. 2025-08-02 13:49:52.433 CST [374923] user=,db=,app=,host= LOG:  checkpoint starting: time
  18. 2025-08-02 13:49:52.855 CST [374923] user=,db=,app=,host= LOG:  checkpoint complete: wrote 7 buffers (0.0%); 0 WAL file(s) added, 0 removed, 1 recycled; write=0.405 s, sync=0.005 s, total=0.423 s; sync files=6, longest=0.003 s, average=0.001 s; distance=9 kB, estimate=9 kB; lsn=0/1D002558, redo lsn=0/1D002520
  19. 2025-08-02 13:51:06.017 CST [374997] user=appuser,db=postgres,app=[unknown],host=***.***.***.*** LOG:  AUDIT: SESSION,1,1,MISC,SET,,,SET extra_float_digits = 3,<not logged>
  20. 2025-08-02 13:51:06.029 CST [374997] user=appuser,db=postgres,app=PostgreSQL JDBC Driver,host=***.***.***.*** LOG:  AUDIT: SESSION,2,1,MISC,SET,,,SET application_name = 'PostgreSQL JDBC Driver',<not logged>
  21. 2025-08-02 13:51:06.040 CST [374997] user=appuser,db=postgres,app=DBeaver 25.1.0 - Read PostgreSQL database list,host=***.***.***.*** LOG:  AUDIT: SESSION,3,1,MISC,SET,,,SET application_name = 'DBeaver 25.1.0 - Read PostgreSQL database list',<not logged>
  22. 2025-08-02 13:51:06.053 CST [374997] user=appuser,db=postgres,app=DBeaver 25.1.0 - Read PostgreSQL database list,host=***.***.***.*** LOG:  AUDIT: SESSION,4,1,READ,SELECT,,,"SELECT db.oid,db.* FROM pg_catalog.pg_database db WHERE 1 = 1 AND datallowconn AND NOT datistemplate OR db.datname =$1
  23.         ORDER BY db.datname",<not logged>
  24. 2025-08-02 13:51:06.065 CST [374997] user=appuser,db=postgres,app=DBeaver 25.1.0 - Read PostgreSQL database list,host=***.***.***.*** LOG:  AUDIT: SESSION,5,1,READ,SELECT,,,SELECT current_database(),<not logged>
  25. 2025-08-02 13:51:06.140 CST [374998] user=appuser,db=postgres,app=[unknown],host=***.***.***.*** LOG:  AUDIT: SESSION,1,1,MISC,SET,,,SET extra_float_digits = 3,<not logged>
  26. 2025-08-02 13:51:06.151 CST [374998] user=appuser,db=postgres,app=PostgreSQL JDBC Driver,host=***.***.***.*** LOG:  AUDIT: SESSION,2,1,MISC,SET,,,SET application_name = 'PostgreSQL JDBC Driver',<not logged>
  27. 2025-08-02 13:51:06.162 CST [374998] user=appuser,db=postgres,app=DBeaver 25.1.0 - Main <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,3,1,MISC,SET,,,SET application_name = 'DBeaver 25.1.0 - Main <postgres>',<not logged>
  28. 2025-08-02 13:51:06.173 CST [374998] user=appuser,db=postgres,app=DBeaver 25.1.0 - Main <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,4,1,READ,SELECT,,,"SELECT current_schema(),session_user",<not logged>
  29. 2025-08-02 13:51:06.186 CST [374998] user=appuser,db=postgres,app=DBeaver 25.1.0 - Main <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,5,1,READ,SELECT,,,"SELECT n.oid,n.*,d.description FROM pg_catalog.pg_namespace n
  30.         LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=n.oid AND d.objsubid=0 AND d.classoid='pg_namespace'::regclass
  31.          ORDER BY nspname",<not logged>
  32. 2025-08-02 13:51:06.198 CST [374998] user=appuser,db=postgres,app=DBeaver 25.1.0 - Main <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,6,1,READ,SELECT,,,"SELECT n.nspname = ANY(current_schemas(true)), n.nspname, t.typname FROM pg_catalog.pg_type t JOIN pg_catalog.pg_namespace n ON t.typnamespace = n.oid WHERE t.oid = $1",<not logged>
  33. 2025-08-02 13:51:06.211 CST [374998] user=appuser,db=postgres,app=DBeaver 25.1.0 - Main <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,7,1,READ,SELECT,,,"SELECT typinput='pg_catalog.array_in'::regproc as is_array, typtype, typname, pg_type.oid   FROM pg_catalog.pg_type   LEFT JOIN (select ns.oid as nspoid, ns.nspname, r.r           from pg_namespace as ns           join ( select s.r, (current_schemas(false))[s.r] as nspname                    from generate_series(1, array_upper(current_schemas(false), 1)) as s(r) ) as r          using ( nspname )        ) as sp     ON sp.nspoid = typnamespace  WHERE pg_type.oid = $1  ORDER BY sp.r, pg_type.oid DESC",<not logged>
  34. 2025-08-02 13:51:06.222 CST [374998] user=appuser,db=postgres,app=DBeaver 25.1.0 - Main <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,8,1,MISC,SHOW,,,SHOW search_path,<not logged>
  35. 2025-08-02 13:51:06.296 CST [374999] user=appuser,db=postgres,app=[unknown],host=***.***.***.*** LOG:  AUDIT: SESSION,1,1,MISC,SET,,,SET extra_float_digits = 3,<not logged>
  36. 2025-08-02 13:51:06.308 CST [374999] user=appuser,db=postgres,app=PostgreSQL JDBC Driver,host=***.***.***.*** LOG:  AUDIT: SESSION,2,1,MISC,SET,,,SET application_name = 'PostgreSQL JDBC Driver',<not logged>
  37. 2025-08-02 13:51:06.322 CST [374999] user=appuser,db=postgres,app=DBeaver 25.1.0 - Metadata <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,3,1,MISC,SET,,,SET application_name = 'DBeaver 25.1.0 - Metadata <postgres>',<not logged>
  38. 2025-08-02 13:51:06.335 CST [374999] user=appuser,db=postgres,app=DBeaver 25.1.0 - Metadata <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,4,1,READ,SELECT,,,"SELECT current_schema(),session_user",<not logged>
  39. 2025-08-02 13:51:06.346 CST [374999] user=appuser,db=postgres,app=DBeaver 25.1.0 - Metadata <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,5,1,MISC,SHOW,,,SHOW search_path,<not logged>
  40. 2025-08-02 13:51:06.358 CST [374999] user=appuser,db=postgres,app=DBeaver 25.1.0 - Metadata <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,6,1,READ,SELECT,,,select * from pg_catalog.pg_settings where name=$1,<not logged>
  41. 2025-08-02 13:51:06.371 CST [374999] user=appuser,db=postgres,app=DBeaver 25.1.0 - Metadata <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,7,1,READ,SELECT,,,"select string_agg(word, ',') from pg_catalog.pg_get_keywords() where word <> ALL ('{a,abs,absolute,action,ada,add,admin,after,all,allocate,alter,always,and,any,are,array,as,asc,asensitive,assertion,assignment,asymmetric,at,atomic,attribute,attributes,authorization,avg,before,begin,bernoulli,between,bigint,binary,blob,boolean,both,breadth,by,c,call,called,cardinality,cascade,cascaded,case,cast,catalog,catalog_name,ceil,ceiling,chain,char,char_length,character,character_length,character_set_catalog,character_set_name,character_set_schema,characteristics,characters,check,checked,class_origin,clob,close,coalesce,cobol,code_units,collate,collation,collation_catalog,collation_name,collation_schema,collect,column,column_name,command_function,command_function_code,commit,committed,condition,condition_number,connect,connection_name,constraint,constraint_catalog,constraint_name,constraint_schema,constraints,constructors,contains,continue,convert,corr,corresponding,count,covar_pop,covar_samp,create,cross,cube,cume_dist,current,current_collation,current_date,current_default_transform_group,current_path,current_role,current_time,current_timestamp,current_transform_group_for_type,current_user,cursor,cursor_name,cycle,data,date,datetime_interval_code,datetime_interval_precision,day,deallocate,dec,decimal,declare,default,defaults,deferrable,deferred,defined,definer,degree,delete,dense_rank,depth,deref,derived,desc,describe,descriptor,deterministic,diagnostics,disconnect,dispatch,distinct,domain,double,drop,dynamic,dynamic_function,dynamic_function_code,each,element,else,end,end-exec,equals,escape,every,except,exception,exclude,excluding,exec,execute,exists,exp,external,extract,false,fetch,filter,final,first,float,floor,following,for,foreign,fortran,found,free,from,full,function,fusion,g,general,get,global,go,goto,grant,granted,group,grouping,having,hierarchy,hold,hour,identity,immediate,implementation,in,including,increment,indicator,initially,inner,inout,input,insensitive,insert,instance,instantiable,int,integer,intersect,intersection,interval,into,invoker,is,isolation,join,k,key,key_member,key_type,language,large,last,lateral,leading,left,length,level,like,ln,local,localtime,localtimestamp,locator,lower,m,map,match,matched,max,maxvalue,member,merge,message_length,message_octet_length,message_text,method,min,minute,minvalue,mod,modifies,module,month,more,multiset,mumps,name,names,national,natural,nchar,nclob,nesting,new,next,no,none,normalize,normalized,not,""null"",nullable,nullif,nulls,number,numeric,object,octet_length,octets,of,old,on,only,open,option,options,or,order,ordering,ordinality,others,out,outer,output,over,overlaps,overlay,overriding,pad,parameter,parameter_mode,parameter_name,parameter_ordinal_position,parameter_specific_catalog,parameter_specific_name,parameter_specific_schema,partial,partition,pascal,path,percent_rank,percentile_cont,percentile_disc,placing,pli,position,power,preceding,precision,prepare,preserve,primary,prior,privileges,procedure,public,range,rank,read,reads,real,recursive,ref,references,referencing,regr_avgx,regr_avgy,regr_count,regr_intercept,regr_r2,regr_slope,regr_sxx,regr_sxy,regr_syy,relative,release,repeatable,restart,result,return,returned_cardinality,returned_length,returned_octet_length,returned_sqlstate,returns,revoke,right,role,rollback,rollup,routine,routine_catalog,routine_name,routine_schema,row,row_count,row_number,rows,savepoint,scale,schema,schema_name,scope_catalog,scope_name,scope_schema,scroll,search,second,section,security,select,self,sensitive,sequence,serializable,server_name,session,session_user,set,sets,similar,simple,size,smallint,some,source,space,specific,specific_name,specifictype,sql,sqlexception,sqlstate,sqlwarning,sqrt,start,state,statement,static,stddev_pop,stddev_samp,structure,style,subclass_origin,submultiset,substring,sum,symmetric,system,system_user,table,table_name,tablesample,temporary,then,ties,time,timestamp,timezone_hour,timezone_minute,to,top_level_count,trailing,transaction,transaction_active,transactions_committed,transactions_rolled_back,transform,transforms,translate,translation,treat,trigger,trigger_catalog,trigger_name,trigger_schema,trim,true,type,uescape,unbounded,uncommitted,under,union,unique,unknown,unnamed,unnest,update,upper,usage,user,user_defined_type_catalog,user_defined_type_code,user_defined_type_name,user_defined_type_schema,using,value,values,var_pop,var_samp,varchar,varying,view,when,whenever,where,width_bucket,window,with,within,without,work,write,year,zone}'::text[])",<not logged>
  42. 2025-08-02 13:51:06.386 CST [374999] user=appuser,db=postgres,app=DBeaver 25.1.0 - Metadata <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,8,1,READ,SELECT,,,SELECT version(),<not logged>
  43. 2025-08-02 13:51:06.397 CST [374999] user=appuser,db=postgres,app=DBeaver 25.1.0 - Metadata <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,9,1,READ,SELECT,,,SELECT * FROM pg_catalog.pg_enum WHERE 1<>1 LIMIT 1,<not logged>
  44. 2025-08-02 13:51:06.409 CST [374999] user=appuser,db=postgres,app=DBeaver 25.1.0 - Metadata <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,10,1,READ,SELECT,,,SELECT reltype FROM pg_catalog.pg_class WHERE 1<>1 LIMIT 1,<not logged>
  45. 2025-08-02 13:51:06.422 CST [374999] user=appuser,db=postgres,app=DBeaver 25.1.0 - Metadata <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,11,1,READ,SELECT,,,"SELECT t.oid,t.*,c.relkind,format_type(nullif(t.typbasetype, 0), t.typtypmod) as base_type_name, d.description
  46.         FROM pg_catalog.pg_type t
  47.         LEFT OUTER JOIN pg_catalog.pg_type et ON et.oid=t.typelem
  48.         LEFT OUTER JOIN pg_catalog.pg_class c ON c.oid=t.typrelid
  49.         LEFT OUTER JOIN pg_catalog.pg_description d ON t.oid=d.objoid
  50.         WHERE t.typname IS NOT NULL
  51.         AND (c.relkind IS NULL OR c.relkind = 'c') AND (et.typcategory IS NULL OR et.typcategory <> 'C')",<not logged>
  52. 2025-08-02 13:51:06.487 CST [374999] user=appuser,db=postgres,app=DBeaver 25.1.0 - Metadata <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,12,1,READ,SELECT,,,SELECT * FROM pg_catalog.pg_enum,<not logged>
  53. 2025-08-02 13:51:06.593 CST [375000] user=appuser,db=db03,app=[unknown],host=***.***.***.*** LOG:  AUDIT: SESSION,1,1,MISC,SET,,,SET extra_float_digits = 3,<not logged>
  54. 2025-08-02 13:51:06.604 CST [375000] user=appuser,db=db03,app=PostgreSQL JDBC Driver,host=***.***.***.*** LOG:  AUDIT: SESSION,2,1,MISC,SET,,,SET application_name = 'PostgreSQL JDBC Driver',<not logged>
  55. 2025-08-02 13:51:06.616 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,3,1,MISC,SET,,,SET application_name = 'DBeaver 25.1.0 - SQLEditor <Script-8.sql>',<not logged>
  56. 2025-08-02 13:51:06.627 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,4,1,READ,SELECT,,,"SELECT current_schema(),session_user",<not logged>
  57. 2025-08-02 13:51:06.709 CST [375001] user=appuser,db=db03,app=[unknown],host=***.***.***.*** LOG:  AUDIT: SESSION,1,1,MISC,SET,,,SET extra_float_digits = 3,<not logged>
  58. 2025-08-02 13:51:06.721 CST [375001] user=appuser,db=db03,app=PostgreSQL JDBC Driver,host=***.***.***.*** LOG:  AUDIT: SESSION,2,1,MISC,SET,,,SET application_name = 'PostgreSQL JDBC Driver',<not logged>
  59. 2025-08-02 13:51:06.733 CST [375001] user=appuser,db=db03,app=DBeaver 25.1.0 - Main <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,3,1,MISC,SET,,,SET application_name = 'DBeaver 25.1.0 - Main <db03>',<not logged>
  60. 2025-08-02 13:51:06.745 CST [375001] user=appuser,db=db03,app=DBeaver 25.1.0 - Main <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,4,1,READ,SELECT,,,"SELECT current_schema(),session_user",<not logged>
  61. 2025-08-02 13:51:06.759 CST [375001] user=appuser,db=db03,app=DBeaver 25.1.0 - Main <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,5,1,READ,SELECT,,,"SELECT n.oid,n.*,d.description FROM pg_catalog.pg_namespace n
  62.         LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=n.oid AND d.objsubid=0 AND d.classoid='pg_namespace'::regclass
  63.          ORDER BY nspname",<not logged>
  64. 2025-08-02 13:51:06.772 CST [375001] user=appuser,db=db03,app=DBeaver 25.1.0 - Main <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,6,1,READ,SELECT,,,"SELECT n.nspname = ANY(current_schemas(true)), n.nspname, t.typname FROM pg_catalog.pg_type t JOIN pg_catalog.pg_namespace n ON t.typnamespace = n.oid WHERE t.oid = $1",<not logged>
  65. 2025-08-02 13:51:06.785 CST [375001] user=appuser,db=db03,app=DBeaver 25.1.0 - Main <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,7,1,READ,SELECT,,,"SELECT typinput='pg_catalog.array_in'::regproc as is_array, typtype, typname, pg_type.oid   FROM pg_catalog.pg_type   LEFT JOIN (select ns.oid as nspoid, ns.nspname, r.r           from pg_namespace as ns           join ( select s.r, (current_schemas(false))[s.r] as nspname                    from generate_series(1, array_upper(current_schemas(false), 1)) as s(r) ) as r          using ( nspname )        ) as sp     ON sp.nspoid = typnamespace  WHERE pg_type.oid = $1  ORDER BY sp.r, pg_type.oid DESC",<not logged>
  66. 2025-08-02 13:51:06.797 CST [375001] user=appuser,db=db03,app=DBeaver 25.1.0 - Main <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,8,1,MISC,SHOW,,,SHOW search_path,<not logged>
  67. 2025-08-02 13:51:06.892 CST [375002] user=appuser,db=db03,app=[unknown],host=***.***.***.*** LOG:  AUDIT: SESSION,1,1,MISC,SET,,,SET extra_float_digits = 3,<not logged>
  68. 2025-08-02 13:51:06.913 CST [375002] user=appuser,db=db03,app=PostgreSQL JDBC Driver,host=***.***.***.*** LOG:  AUDIT: SESSION,2,1,MISC,SET,,,SET application_name = 'PostgreSQL JDBC Driver',<not logged>
  69. 2025-08-02 13:51:06.925 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,3,1,MISC,SET,,,SET application_name = 'DBeaver 25.1.0 - Metadata <db03>',<not logged>
  70. 2025-08-02 13:51:06.938 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,4,1,READ,SELECT,,,"SELECT current_schema(),session_user",<not logged>
  71. 2025-08-02 13:51:06.950 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,5,1,MISC,SHOW,,,SHOW search_path,<not logged>
  72. 2025-08-02 13:51:06.965 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,6,1,READ,SELECT,,,"SELECT t.oid,t.*,c.relkind,format_type(nullif(t.typbasetype, 0), t.typtypmod) as base_type_name, d.description
  73.         FROM pg_catalog.pg_type t
  74.         LEFT OUTER JOIN pg_catalog.pg_type et ON et.oid=t.typelem
  75.         LEFT OUTER JOIN pg_catalog.pg_class c ON c.oid=t.typrelid
  76.         LEFT OUTER JOIN pg_catalog.pg_description d ON t.oid=d.objoid
  77.         WHERE t.typname IS NOT NULL
  78.         AND (c.relkind IS NULL OR c.relkind = 'c') AND (et.typcategory IS NULL OR et.typcategory <> 'C')",<not logged>
  79. 2025-08-02 13:51:07.017 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,7,1,READ,SELECT,,,SELECT * FROM pg_catalog.pg_enum,<not logged>
  80. 2025-08-02 13:51:07.026 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,5,1,MISC,SHOW,,,SHOW search_path,<not logged>
  81. 2025-08-02 13:51:07.767 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,8,1,READ,SELECT,,,"SELECT c.oid,c.*,d.description,pg_catalog.pg_get_expr(c.relpartbound, c.oid) as partition_expr,  pg_catalog.pg_get_partkeydef(c.oid) as partition_key
  82.         FROM pg_catalog.pg_class c
  83.         LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=c.oid AND d.objsubid=0 AND d.classoid='pg_class'::regclass
  84.         WHERE c.relnamespace=$1 AND c.relkind not in ('i','I','c') AND relname=$2",<not logged>
  85. 2025-08-02 13:51:07.781 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,9,1,READ,SELECT,,,"SELECT c.oid,c.*,d.description,pg_catalog.pg_get_expr(c.relpartbound, c.oid) as partition_expr,  pg_catalog.pg_get_partkeydef(c.oid) as partition_key
  86.         FROM pg_catalog.pg_class c
  87.         LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=c.oid AND d.objsubid=0 AND d.classoid='pg_class'::regclass
  88.         WHERE c.relnamespace=$1 AND c.relkind not in ('i','I','c') AND relname=$2",<not logged>
  89. 2025-08-02 13:51:07.797 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,10,1,READ,SELECT,,,"SELECT c.relname,a.*,pg_catalog.pg_get_expr(ad.adbin, ad.adrelid, true) as def_value,dsc.description,dep.objid
  90.         FROM pg_catalog.pg_attribute a
  91.         INNER JOIN pg_catalog.pg_class c ON (a.attrelid=c.oid)
  92.         LEFT OUTER JOIN pg_catalog.pg_attrdef ad ON (a.attrelid=ad.adrelid AND a.attnum = ad.adnum)
  93.         LEFT OUTER JOIN pg_catalog.pg_description dsc ON (c.oid=dsc.objoid AND a.attnum = dsc.objsubid)
  94.         LEFT OUTER JOIN pg_depend dep on dep.refobjid = a.attrelid AND dep.deptype = 'i' and dep.refobjsubid = a.attnum and dep.classid = dep.refclassid
  95.         WHERE NOT a.attisdropped AND c.relkind not in ('i','I','c') AND c.oid=$1
  96.         ORDER BY a.attnum",<not logged>
  97. 2025-08-02 13:51:07.813 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,11,1,READ,SELECT,,,"SELECT c.oid,c.*,d.description,pg_catalog.pg_get_expr(c.relpartbound, c.oid) as partition_expr,  pg_catalog.pg_get_partkeydef(c.oid) as partition_key
  98.         FROM pg_catalog.pg_class c
  99.         LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=c.oid AND d.objsubid=0 AND d.classoid='pg_class'::regclass
  100.         WHERE c.relnamespace=$1 AND c.relkind not in ('i','I','c') AND relname=$2",<not logged>
  101. 2025-08-02 13:51:07.826 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,12,1,READ,SELECT,,,"SELECT c.oid,c.*,d.description,pg_catalog.pg_get_expr(c.relpartbound, c.oid) as partition_expr,  pg_catalog.pg_get_partkeydef(c.oid) as partition_key
  102.         FROM pg_catalog.pg_class c
  103.         LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=c.oid AND d.objsubid=0 AND d.classoid='pg_class'::regclass
  104.         WHERE c.relnamespace=$1 AND c.relkind not in ('i','I','c')",<not logged>
  105. 2025-08-02 13:51:07.839 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,13,1,READ,SELECT,,,"SELECT c.oid,c.*,d.description,pg_catalog.pg_get_expr(c.relpartbound, c.oid) as partition_expr,  pg_catalog.pg_get_partkeydef(c.oid) as partition_key
  106.         FROM pg_catalog.pg_class c
  107.         LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=c.oid AND d.objsubid=0 AND d.classoid='pg_class'::regclass
  108.         WHERE c.relnamespace=$1 AND c.relkind not in ('i','I','c')",<not logged>
  109. 2025-08-02 13:51:07.879 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,14,1,READ,SELECT,,,"SELECT n.nspname = ANY(current_schemas(true)), n.nspname, t.typname FROM pg_catalog.pg_type t JOIN pg_catalog.pg_namespace n ON t.typnamespace = n.oid WHERE t.oid = $1",<not logged>
  110. 2025-08-02 13:51:07.892 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,15,1,READ,SELECT,,,"SELECT typinput='pg_catalog.array_in'::regproc as is_array, typtype, typname, pg_type.oid   FROM pg_catalog.pg_type   LEFT JOIN (select ns.oid as nspoid, ns.nspname, r.r           from pg_namespace as ns           join ( select s.r, (current_schemas(false))[s.r] as nspname                    from generate_series(1, array_upper(current_schemas(false), 1)) as s(r) ) as r          using ( nspname )        ) as sp     ON sp.nspoid = typnamespace  WHERE pg_type.oid = $1  ORDER BY sp.r, pg_type.oid DESC",<not logged>
  111. 2025-08-02 13:51:18.677 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,16,1,READ,SELECT,,,"SELECT c.relname,a.*,pg_catalog.pg_get_expr(ad.adbin, ad.adrelid, true) as def_value,dsc.description,dep.objid
  112.         FROM pg_catalog.pg_attribute a
  113.         INNER JOIN pg_catalog.pg_class c ON (a.attrelid=c.oid)
  114.         LEFT OUTER JOIN pg_catalog.pg_attrdef ad ON (a.attrelid=ad.adrelid AND a.attnum = ad.adnum)
  115.         LEFT OUTER JOIN pg_catalog.pg_description dsc ON (c.oid=dsc.objoid AND a.attnum = dsc.objsubid)
  116.         LEFT OUTER JOIN pg_depend dep on dep.refobjid = a.attrelid AND dep.deptype = 'i' and dep.refobjsubid = a.attnum and dep.classid = dep.refclassid
  117.         WHERE NOT a.attisdropped AND c.relkind not in ('i','I','c') AND c.oid=$1
  118.         ORDER BY a.attnum",<not logged>
  119. 2025-08-02 13:51:22.015 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,6,1,DDL,DROP TABLE,,,"
  120.         drop table t01",<not logged>
  121. 2025-08-02 13:51:26.653 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,7,1,DDL,CREATE TABLE,,,create table t01 (c1 int),<not logged>
  122. 2025-08-02 13:51:27.878 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,8,1,WRITE,INSERT,,,insert into t1 values(1),<not logged>
  123. 2025-08-02 13:51:29.013 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,9,1,READ,SELECT,,,"select * from t1
  124.         ",<not logged>
  125. 2025-08-02 13:51:29.027 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,10,1,READ,SELECT,,,"SELECT c.oid, a.attnum, a.attname, c.relname, n.nspname, a.attnotnull OR (t.typtype = 'd' AND t.typnotnull), a.attidentity != '' OR pg_catalog.pg_get_expr(d.adbin, d.adrelid) LIKE '%nextval(%' FROM pg_catalog.pg_class c JOIN pg_catalog.pg_namespace n ON (c.relnamespace = n.oid) JOIN pg_catalog.pg_attribute a ON (c.oid = a.attrelid) JOIN pg_catalog.pg_type t ON (a.atttypid = t.oid) LEFT JOIN pg_catalog.pg_attrdef d ON (d.adrelid = a.attrelid AND d.adnum = a.attnum) JOIN (SELECT 16880 AS oid , 1 AS attnum) vals ON (c.oid = vals.oid AND a.attnum = vals.attnum) ",<not logged>
  126. 2025-08-02 13:51:29.042 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,17,1,READ,SELECT,,,"SELECT i.*,i.indkey as keys,c.relname,c.relnamespace,c.relam,c.reltablespace,tc.relname as tabrelname,dsc.description,pg_catalog.pg_get_expr(i.indpred, i.indrelid) as pred_expr,pg_catalog.pg_get_expr(i.indexprs, i.indrelid, true) as expr,pg_catalog.pg_relation_size(i.indexrelid) as index_rel_size,pg_catalog.pg_stat_get_numscans(i.indexrelid) as index_num_scans
  127.         FROM pg_catalog.pg_index i
  128.         INNER JOIN pg_catalog.pg_class c ON c.oid=i.indexrelid
  129.         INNER JOIN pg_catalog.pg_class tc ON tc.oid=i.indrelid
  130.         LEFT OUTER JOIN pg_catalog.pg_description dsc ON i.indexrelid=dsc.objoid
  131.         WHERE  i.indrelid=$1 ORDER BY tabrelname, c.relname",<not logged>
  132. 2025-08-02 13:51:29.057 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,18,1,READ,SELECT,,,"SELECT c.oid,c.*,t.relname as tabrelname,rt.relnamespace as refnamespace,d.description, case when c.contype='c' then ""substring""(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
  133.         FROM pg_catalog.pg_constraint c
  134.         INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid
  135.         LEFT OUTER JOIN pg_catalog.pg_class rt ON rt.oid=c.confrelid
  136.         LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=c.oid AND d.objsubid=0 AND d.classoid='pg_constraint'::regclass
  137.         WHERE c.conrelid=$1
  138.         ORDER BY c.oid",<not logged>
  139. 2025-08-02 13:51:29.070 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,19,1,READ,SELECT,,,"SELECT i.*,c.relnamespace FROM pg_catalog.pg_inherits i,pg_catalog.pg_class c WHERE i.inhrelid=$1 AND c.oid=i.inhparent ORDER BY i.inhseqno",<not logged>
  140. 2025-08-02 13:51:31.377 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,11,1,READ,SELECT,,,select count(1) from t1,<not logged>
  141. 2025-08-02 13:51:32.343 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,12,1,WRITE,DELETE,,,"delete from t1
  142.         ",<not logged>
  143. 2025-08-02 13:51:33.859 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,13,1,READ,SELECT,,,"
  144.         select count(1) from t1",<not logged>
  145. 2025-08-02 13:51:35.578 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,14,1,DDL,CREATE TABLE,,,"create table t02 (c1 int)
  146.         ",<not logged>
  147. 2025-08-02 13:51:37.162 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** ERROR:  relation "t2" does not exist at character 15
  148. 2025-08-02 13:51:37.162 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** STATEMENT:  select * from t2
  149.        
  150. 2025-08-02 13:51:39.968 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** ERROR:  relation "t2" does not exist at character 13
  151. 2025-08-02 13:51:39.968 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** STATEMENT:  insert into t2 values(1)
  152. 2025-08-02 13:51:42.789 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** ERROR:  relation "t02" already exists
  153. 2025-08-02 13:51:42.789 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** STATEMENT:  
  154.         create table t02 (c1 int)
  155.        
  156. 2025-08-02 13:51:46.868 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,15,1,READ,SELECT,,,"SELECT pc.oid,pc.relname,pc.relnamespace,pc.relkind FROM pg_catalog.pg_class pc WHERE pc.relkind in('r','v','m','f','p') AND pc.relname ILIKE $1 AND pc.relnamespace IN ($2,$3) ORDER BY pc.relname LIMIT 10",<not logged>
  157. 2025-08-02 13:51:46.880 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,16,1,READ,SELECT,,,"SELECT pp.oid as poid, pp.* FROM pg_catalog.pg_proc pp WHERE pp.proname ILIKE $1 AND pp.pronamespace IN ($2,$3) ORDER BY pp.proname LIMIT 10",<not logged>
  158. 2025-08-02 13:51:48.946 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,17,1,READ,SELECT,,,"SELECT pc.oid,pc.relname,pc.relnamespace,pc.relkind FROM pg_catalog.pg_class pc WHERE pc.relkind in('r','v','m','f','p') AND pc.relname ILIKE $1 AND pc.relnamespace IN ($2,$3) ORDER BY pc.relname LIMIT 10",<not logged>
  159. 2025-08-02 13:51:48.957 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,18,1,READ,SELECT,,,"SELECT pp.oid as poid, pp.* FROM pg_catalog.pg_proc pp WHERE pp.proname ILIKE $1 AND pp.pronamespace IN ($2,$3) ORDER BY pp.proname LIMIT 9",<not logged>
  160. 2025-08-02 13:51:50.598 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,19,1,READ,SELECT,,,"select * from t02
  161.         ",<not logged>
  162. 2025-08-02 13:51:50.612 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,20,1,READ,SELECT,,,"SELECT c.oid, a.attnum, a.attname, c.relname, n.nspname, a.attnotnull OR (t.typtype = 'd' AND t.typnotnull), a.attidentity != '' OR pg_catalog.pg_get_expr(d.adbin, d.adrelid) LIKE '%nextval(%' FROM pg_catalog.pg_class c JOIN pg_catalog.pg_namespace n ON (c.relnamespace = n.oid) JOIN pg_catalog.pg_attribute a ON (c.oid = a.attrelid) JOIN pg_catalog.pg_type t ON (a.atttypid = t.oid) LEFT JOIN pg_catalog.pg_attrdef d ON (d.adrelid = a.attrelid AND d.adnum = a.attnum) JOIN (SELECT 16895 AS oid , 1 AS attnum) vals ON (c.oid = vals.oid AND a.attnum = vals.attnum) ",<not logged>
  163. 2025-08-02 13:51:51.808 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,21,1,WRITE,DELETE,,,"
  164.         delete from t02",<not logged>
  165. 2025-08-02 13:51:54.331 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,22,1,READ,SELECT,,,"SELECT pc.oid,pc.relname,pc.relnamespace,pc.relkind FROM pg_catalog.pg_class pc WHERE pc.relkind in('r','v','m','f','p') AND pc.relname ILIKE $1 AND pc.relnamespace IN ($2,$3) ORDER BY pc.relname LIMIT 10",<not logged>
  166. 2025-08-02 13:51:54.342 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,23,1,READ,SELECT,,,"SELECT pp.oid as poid, pp.* FROM pg_catalog.pg_proc pp WHERE pp.proname ILIKE $1 AND pp.pronamespace IN ($2,$3) ORDER BY pp.proname LIMIT 10",<not logged>
  167. 2025-08-02 13:51:55.996 CST [375000] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,24,1,READ,SELECT,,,select count(1) from t02,<not logged>
  168. 2025-08-02 13:52:01.258 CST [374998] user=appuser,db=postgres,app=DBeaver 25.1.0 - Main <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,9,1,READ,SELECT,,,select description from pg_shdescription join pg_database on objoid = pg_database.oid where datname = $1,<not logged>
  169. 2025-08-02 13:52:01.270 CST [374998] user=appuser,db=postgres,app=DBeaver 25.1.0 - Main <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,10,1,READ,SELECT,,,select description from pg_shdescription join pg_database on objoid = pg_database.oid where datname = $1,<not logged>
  170. 2025-08-02 13:52:01.282 CST [374998] user=appuser,db=postgres,app=DBeaver 25.1.0 - Main <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,11,1,READ,SELECT,,,select description from pg_shdescription join pg_database on objoid = pg_database.oid where datname = $1,<not logged>
  171. 2025-08-02 13:52:01.293 CST [374998] user=appuser,db=postgres,app=DBeaver 25.1.0 - Main <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,12,1,READ,SELECT,,,select description from pg_shdescription join pg_database on objoid = pg_database.oid where datname = $1,<not logged>
  172. 2025-08-02 13:52:01.305 CST [374998] user=appuser,db=postgres,app=DBeaver 25.1.0 - Main <postgres>,host=***.***.***.*** LOG:  AUDIT: SESSION,13,1,READ,SELECT,,,select description from pg_shdescription join pg_database on objoid = pg_database.oid where datname = $1,<not logged>
  173. 2025-08-02 13:52:02.836 CST [375011] user=appuser,db=db04,app=[unknown],host=***.***.***.*** LOG:  AUDIT: SESSION,1,1,MISC,SET,,,SET extra_float_digits = 3,<not logged>
  174. 2025-08-02 13:52:02.847 CST [375011] user=appuser,db=db04,app=PostgreSQL JDBC Driver,host=***.***.***.*** LOG:  AUDIT: SESSION,2,1,MISC,SET,,,SET application_name = 'PostgreSQL JDBC Driver',<not logged>
  175. 2025-08-02 13:52:02.858 CST [375011] user=appuser,db=db04,app=DBeaver 25.1.0 - Main <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,3,1,MISC,SET,,,SET application_name = 'DBeaver 25.1.0 - Main <db04>',<not logged>
  176. 2025-08-02 13:52:02.870 CST [375011] user=appuser,db=db04,app=DBeaver 25.1.0 - Main <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,4,1,READ,SELECT,,,"SELECT current_schema(),session_user",<not logged>
  177. 2025-08-02 13:52:02.884 CST [375011] user=appuser,db=db04,app=DBeaver 25.1.0 - Main <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,5,1,READ,SELECT,,,"SELECT n.oid,n.*,d.description FROM pg_catalog.pg_namespace n
  178.         LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=n.oid AND d.objsubid=0 AND d.classoid='pg_namespace'::regclass
  179.          ORDER BY nspname",<not logged>
  180. 2025-08-02 13:52:02.896 CST [375011] user=appuser,db=db04,app=DBeaver 25.1.0 - Main <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,6,1,READ,SELECT,,,"SELECT n.nspname = ANY(current_schemas(true)), n.nspname, t.typname FROM pg_catalog.pg_type t JOIN pg_catalog.pg_namespace n ON t.typnamespace = n.oid WHERE t.oid = $1",<not logged>
  181. 2025-08-02 13:52:02.909 CST [375011] user=appuser,db=db04,app=DBeaver 25.1.0 - Main <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,7,1,READ,SELECT,,,"SELECT typinput='pg_catalog.array_in'::regproc as is_array, typtype, typname, pg_type.oid   FROM pg_catalog.pg_type   LEFT JOIN (select ns.oid as nspoid, ns.nspname, r.r           from pg_namespace as ns           join ( select s.r, (current_schemas(false))[s.r] as nspname                    from generate_series(1, array_upper(current_schemas(false), 1)) as s(r) ) as r          using ( nspname )        ) as sp     ON sp.nspoid = typnamespace  WHERE pg_type.oid = $1  ORDER BY sp.r, pg_type.oid DESC",<not logged>
  182. 2025-08-02 13:52:02.920 CST [375011] user=appuser,db=db04,app=DBeaver 25.1.0 - Main <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,8,1,MISC,SHOW,,,SHOW search_path,<not logged>
  183. 2025-08-02 13:52:02.998 CST [375012] user=appuser,db=db04,app=[unknown],host=***.***.***.*** LOG:  AUDIT: SESSION,1,1,MISC,SET,,,SET extra_float_digits = 3,<not logged>
  184. 2025-08-02 13:52:03.015 CST [375012] user=appuser,db=db04,app=PostgreSQL JDBC Driver,host=***.***.***.*** LOG:  AUDIT: SESSION,2,1,MISC,SET,,,SET application_name = 'PostgreSQL JDBC Driver',<not logged>
  185. 2025-08-02 13:52:03.028 CST [375012] user=appuser,db=db04,app=DBeaver 25.1.0 - Metadata <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,3,1,MISC,SET,,,SET application_name = 'DBeaver 25.1.0 - Metadata <db04>',<not logged>
  186. 2025-08-02 13:52:03.042 CST [375012] user=appuser,db=db04,app=DBeaver 25.1.0 - Metadata <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,4,1,READ,SELECT,,,"SELECT current_schema(),session_user",<not logged>
  187. 2025-08-02 13:52:03.055 CST [375012] user=appuser,db=db04,app=DBeaver 25.1.0 - Metadata <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,5,1,MISC,SHOW,,,SHOW search_path,<not logged>
  188. 2025-08-02 13:52:03.072 CST [375012] user=appuser,db=db04,app=DBeaver 25.1.0 - Metadata <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,6,1,READ,SELECT,,,"SELECT t.oid,t.*,c.relkind,format_type(nullif(t.typbasetype, 0), t.typtypmod) as base_type_name, d.description
  189.         FROM pg_catalog.pg_type t
  190.         LEFT OUTER JOIN pg_catalog.pg_type et ON et.oid=t.typelem
  191.         LEFT OUTER JOIN pg_catalog.pg_class c ON c.oid=t.typrelid
  192.         LEFT OUTER JOIN pg_catalog.pg_description d ON t.oid=d.objoid
  193.         WHERE t.typname IS NOT NULL
  194.         AND (c.relkind IS NULL OR c.relkind = 'c') AND (et.typcategory IS NULL OR et.typcategory <> 'C')",<not logged>
  195. 2025-08-02 13:52:03.126 CST [375012] user=appuser,db=db04,app=DBeaver 25.1.0 - Metadata <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,7,1,READ,SELECT,,,SELECT * FROM pg_catalog.pg_enum,<not logged>
  196. 2025-08-02 13:52:03.983 CST [375013] user=appuser,db=db04,app=[unknown],host=***.***.***.*** LOG:  AUDIT: SESSION,1,1,MISC,SET,,,SET extra_float_digits = 3,<not logged>
  197. 2025-08-02 13:52:03.994 CST [375013] user=appuser,db=db04,app=PostgreSQL JDBC Driver,host=***.***.***.*** LOG:  AUDIT: SESSION,2,1,MISC,SET,,,SET application_name = 'PostgreSQL JDBC Driver',<not logged>
  198. 2025-08-02 13:52:04.006 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,3,1,MISC,SET,,,SET application_name = 'DBeaver 25.1.0 - SQLEditor <Script-8.sql>',<not logged>
  199. 2025-08-02 13:52:04.018 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,4,1,READ,SELECT,,,"SELECT current_schema(),session_user",<not logged>
  200. 2025-08-02 13:52:04.029 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,5,1,MISC,SHOW,,,SHOW search_path,<not logged>
  201. 2025-08-02 13:52:04.599 CST [375012] user=appuser,db=db04,app=DBeaver 25.1.0 - Metadata <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,8,1,READ,SELECT,,,"SELECT c.oid,c.*,d.description,pg_catalog.pg_get_expr(c.relpartbound, c.oid) as partition_expr,  pg_catalog.pg_get_partkeydef(c.oid) as partition_key
  202.         FROM pg_catalog.pg_class c
  203.         LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=c.oid AND d.objsubid=0 AND d.classoid='pg_class'::regclass
  204.         WHERE c.relnamespace=$1 AND c.relkind not in ('i','I','c') AND relname=$2",<not logged>
  205. 2025-08-02 13:52:04.612 CST [375012] user=appuser,db=db04,app=DBeaver 25.1.0 - Metadata <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,9,1,READ,SELECT,,,"SELECT c.oid,c.*,d.description,pg_catalog.pg_get_expr(c.relpartbound, c.oid) as partition_expr,  pg_catalog.pg_get_partkeydef(c.oid) as partition_key
  206.         FROM pg_catalog.pg_class c
  207.         LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=c.oid AND d.objsubid=0 AND d.classoid='pg_class'::regclass
  208.         WHERE c.relnamespace=$1 AND c.relkind not in ('i','I','c')",<not logged>
  209. 2025-08-02 13:52:04.626 CST [375012] user=appuser,db=db04,app=DBeaver 25.1.0 - Metadata <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,10,1,READ,SELECT,,,"SELECT c.oid,c.*,d.description,pg_catalog.pg_get_expr(c.relpartbound, c.oid) as partition_expr,  pg_catalog.pg_get_partkeydef(c.oid) as partition_key
  210.         FROM pg_catalog.pg_class c
  211.         LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=c.oid AND d.objsubid=0 AND d.classoid='pg_class'::regclass
  212.         WHERE c.relnamespace=$1 AND c.relkind not in ('i','I','c')",<not logged>
  213. 2025-08-02 13:52:04.663 CST [375012] user=appuser,db=db04,app=DBeaver 25.1.0 - Metadata <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,11,1,READ,SELECT,,,"SELECT n.nspname = ANY(current_schemas(true)), n.nspname, t.typname FROM pg_catalog.pg_type t JOIN pg_catalog.pg_namespace n ON t.typnamespace = n.oid WHERE t.oid = $1",<not logged>
  214. 2025-08-02 13:52:04.677 CST [375012] user=appuser,db=db04,app=DBeaver 25.1.0 - Metadata <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,12,1,READ,SELECT,,,"SELECT typinput='pg_catalog.array_in'::regproc as is_array, typtype, typname, pg_type.oid   FROM pg_catalog.pg_type   LEFT JOIN (select ns.oid as nspoid, ns.nspname, r.r           from pg_namespace as ns           join ( select s.r, (current_schemas(false))[s.r] as nspname                    from generate_series(1, array_upper(current_schemas(false), 1)) as s(r) ) as r          using ( nspname )        ) as sp     ON sp.nspoid = typnamespace  WHERE pg_type.oid = $1  ORDER BY sp.r, pg_type.oid DESC",<not logged>
  215. 2025-08-02 13:52:04.696 CST [375012] user=appuser,db=db04,app=DBeaver 25.1.0 - Metadata <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,13,1,READ,SELECT,,,"SELECT c.relname,a.*,pg_catalog.pg_get_expr(ad.adbin, ad.adrelid, true) as def_value,dsc.description,dep.objid
  216.         FROM pg_catalog.pg_attribute a
  217.         INNER JOIN pg_catalog.pg_class c ON (a.attrelid=c.oid)
  218.         LEFT OUTER JOIN pg_catalog.pg_attrdef ad ON (a.attrelid=ad.adrelid AND a.attnum = ad.adnum)
  219.         LEFT OUTER JOIN pg_catalog.pg_description dsc ON (c.oid=dsc.objoid AND a.attnum = dsc.objsubid)
  220.         LEFT OUTER JOIN pg_depend dep on dep.refobjid = a.attrelid AND dep.deptype = 'i' and dep.refobjsubid = a.attnum and dep.classid = dep.refclassid
  221.         WHERE NOT a.attisdropped AND c.relkind not in ('i','I','c') AND c.oid=$1
  222.         ORDER BY a.attnum",<not logged>
  223. 2025-08-02 13:52:09.425 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** ERROR:  relation "t1" does not exist at character 13
  224. 2025-08-02 13:52:09.425 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** STATEMENT:  insert into t1 values(1)
  225. 2025-08-02 13:52:10.441 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** ERROR:  relation "t1" does not exist at character 15
  226. 2025-08-02 13:52:10.441 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** STATEMENT:  select * from t1
  227. 2025-08-02 13:52:14.358 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,6,1,READ,SELECT,,,"SELECT pc.oid,pc.relname,pc.relnamespace,pc.relkind FROM pg_catalog.pg_class pc WHERE pc.relkind in('r','v','m','f','p') AND pc.relname ILIKE $1 AND pc.relnamespace IN ($2,$3) ORDER BY pc.relname LIMIT 10",<not logged>
  228. 2025-08-02 13:52:14.371 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,7,1,READ,SELECT,,,"SELECT pp.oid as poid, pp.* FROM pg_catalog.pg_proc pp WHERE pp.proname ILIKE $1 AND pp.pronamespace IN ($2,$3) ORDER BY pp.proname LIMIT 10",<not logged>
  229. 2025-08-02 13:52:15.679 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,8,1,READ,SELECT,,,"SELECT pc.oid,pc.relname,pc.relnamespace,pc.relkind FROM pg_catalog.pg_class pc WHERE pc.relkind in('r','v','m','f','p') AND pc.relname ILIKE $1 AND pc.relnamespace IN ($2,$3) ORDER BY pc.relname LIMIT 10",<not logged>
  230. 2025-08-02 13:52:15.691 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,9,1,READ,SELECT,,,"SELECT pp.oid as poid, pp.* FROM pg_catalog.pg_proc pp WHERE pp.proname ILIKE $1 AND pp.pronamespace IN ($2,$3) ORDER BY pp.proname LIMIT 10",<not logged>
  231. 2025-08-02 13:52:20.776 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** ERROR:  table "t01" does not exist
  232. 2025-08-02 13:52:20.776 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** STATEMENT:  drop table t01
  233. 2025-08-02 13:52:22.245 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,10,1,DDL,CREATE TABLE,,,create table t01 (c1 int),<not logged>
  234. 2025-08-02 13:52:23.508 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,11,1,WRITE,INSERT,,,"insert into t01 values(1)
  235.         ",<not logged>
  236. 2025-08-02 13:52:24.364 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,12,1,READ,SELECT,,,"select * from t01
  237.         ",<not logged>
  238. 2025-08-02 13:52:24.378 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,13,1,READ,SELECT,,,"SELECT c.oid, a.attnum, a.attname, c.relname, n.nspname, a.attnotnull OR (t.typtype = 'd' AND t.typnotnull), a.attidentity != '' OR pg_catalog.pg_get_expr(d.adbin, d.adrelid) LIKE '%nextval(%' FROM pg_catalog.pg_class c JOIN pg_catalog.pg_namespace n ON (c.relnamespace = n.oid) JOIN pg_catalog.pg_attribute a ON (c.oid = a.attrelid) JOIN pg_catalog.pg_type t ON (a.atttypid = t.oid) LEFT JOIN pg_catalog.pg_attrdef d ON (d.adrelid = a.attrelid AND d.adnum = a.attnum) JOIN (SELECT 16898 AS oid , 1 AS attnum) vals ON (c.oid = vals.oid AND a.attnum = vals.attnum) ",<not logged>
  239. 2025-08-02 13:52:25.298 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,14,1,WRITE,DELETE,,,delete from t01,<not logged>
  240. 2025-08-02 13:52:26.301 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** ERROR:  relation "t1" does not exist at character 22
  241. 2025-08-02 13:52:26.301 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** STATEMENT:  select count(1) from t1
  242. 2025-08-02 13:52:29.853 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,15,1,READ,SELECT,,,"SELECT pc.oid,pc.relname,pc.relnamespace,pc.relkind FROM pg_catalog.pg_class pc WHERE pc.relkind in('r','v','m','f','p') AND pc.relname ILIKE $1 AND pc.relnamespace IN ($2,$3) ORDER BY pc.relname LIMIT 10",<not logged>
  243. 2025-08-02 13:52:29.865 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,16,1,READ,SELECT,,,"SELECT pp.oid as poid, pp.* FROM pg_catalog.pg_proc pp WHERE pp.proname ILIKE $1 AND pp.pronamespace IN ($2,$3) ORDER BY pp.proname LIMIT 10",<not logged>
  244. 2025-08-02 13:52:30.486 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,17,1,READ,SELECT,,,"SELECT pc.oid,pc.relname,pc.relnamespace,pc.relkind FROM pg_catalog.pg_class pc WHERE pc.relkind in('r','v','m','f','p') AND pc.relname ILIKE $1 AND pc.relnamespace IN ($2,$3) ORDER BY pc.relname LIMIT 10",<not logged>
  245. 2025-08-02 13:52:30.498 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,18,1,READ,SELECT,,,"SELECT pp.oid as poid, pp.* FROM pg_catalog.pg_proc pp WHERE pp.proname ILIKE $1 AND pp.pronamespace IN ($2,$3) ORDER BY pp.proname LIMIT 9",<not logged>
  246. 2025-08-02 13:52:31.882 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,19,1,READ,SELECT,,,select count(1) from t01,<not logged>
  247. 2025-08-02 13:52:33.158 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** ERROR:  relation "t02" already exists
  248. 2025-08-02 13:52:33.158 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** STATEMENT:  create table t02 (c1 int)
  249.        
  250. 2025-08-02 13:52:34.933 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,20,1,WRITE,INSERT,,,insert into t02 values(1),<not logged>
  251. 2025-08-02 13:52:36.036 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,21,1,READ,SELECT,,,select * from t02,<not logged>
  252. 2025-08-02 13:52:36.048 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,22,1,READ,SELECT,,,"SELECT c.oid, a.attnum, a.attname, c.relname, n.nspname, a.attnotnull OR (t.typtype = 'd' AND t.typnotnull), a.attidentity != '' OR pg_catalog.pg_get_expr(d.adbin, d.adrelid) LIKE '%nextval(%' FROM pg_catalog.pg_class c JOIN pg_catalog.pg_namespace n ON (c.relnamespace = n.oid) JOIN pg_catalog.pg_attribute a ON (c.oid = a.attrelid) JOIN pg_catalog.pg_type t ON (a.atttypid = t.oid) LEFT JOIN pg_catalog.pg_attrdef d ON (d.adrelid = a.attrelid AND d.adnum = a.attnum) JOIN (SELECT 16889 AS oid , 1 AS attnum) vals ON (c.oid = vals.oid AND a.attnum = vals.attnum) ",<not logged>
  253. 2025-08-02 13:52:36.061 CST [375012] user=appuser,db=db04,app=DBeaver 25.1.0 - Metadata <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,14,1,READ,SELECT,,,"SELECT i.*,i.indkey as keys,c.relname,c.relnamespace,c.relam,c.reltablespace,tc.relname as tabrelname,dsc.description,pg_catalog.pg_get_expr(i.indpred, i.indrelid) as pred_expr,pg_catalog.pg_get_expr(i.indexprs, i.indrelid, true) as expr,pg_catalog.pg_relation_size(i.indexrelid) as index_rel_size,pg_catalog.pg_stat_get_numscans(i.indexrelid) as index_num_scans
  254.         FROM pg_catalog.pg_index i
  255.         INNER JOIN pg_catalog.pg_class c ON c.oid=i.indexrelid
  256.         INNER JOIN pg_catalog.pg_class tc ON tc.oid=i.indrelid
  257.         LEFT OUTER JOIN pg_catalog.pg_description dsc ON i.indexrelid=dsc.objoid
  258.         WHERE  i.indrelid=$1 ORDER BY tabrelname, c.relname",<not logged>
  259. 2025-08-02 13:52:36.075 CST [375012] user=appuser,db=db04,app=DBeaver 25.1.0 - Metadata <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,15,1,READ,SELECT,,,"SELECT c.oid,c.*,t.relname as tabrelname,rt.relnamespace as refnamespace,d.description, case when c.contype='c' then ""substring""(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
  260.         FROM pg_catalog.pg_constraint c
  261.         INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid
  262.         LEFT OUTER JOIN pg_catalog.pg_class rt ON rt.oid=c.confrelid
  263.         LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=c.oid AND d.objsubid=0 AND d.classoid='pg_constraint'::regclass
  264.         WHERE c.conrelid=$1
  265.         ORDER BY c.oid",<not logged>
  266. 2025-08-02 13:52:36.088 CST [375012] user=appuser,db=db04,app=DBeaver 25.1.0 - Metadata <db04>,host=***.***.***.*** LOG:  AUDIT: SESSION,16,1,READ,SELECT,,,"SELECT i.*,c.relnamespace FROM pg_catalog.pg_inherits i,pg_catalog.pg_class c WHERE i.inhrelid=$1 AND c.oid=i.inhparent ORDER BY i.inhseqno",<not logged>
  267. 2025-08-02 13:52:36.963 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,23,1,WRITE,DELETE,,,"delete from t02",<not logged>
  268. 2025-08-02 13:52:38.284 CST [375013] user=appuser,db=db04,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,24,1,READ,SELECT,,,"select count(1) from t02",<not logged>
  269. -- role级别规则查看
  270. select
  271.   rolname,
  272.   rolconfig
  273. from pg_roles where rolname = 'appuser';
  274.        
  275.        
复制代码
 
3.2 基于数据库级别的审计

记录某个库上的所有操作: ALTER DATABASE dbname SET pgaudit.log = '***';
  1. 1. 记录某个库上的所有操作:
  2. ALTER DATABASE dbname SET pgaudit.log = '***';
  3. ALTER DATABASE DB03 SET pgaudit.log = 'read, write, ddl';
  4. 以上开启DB03库的审计后,不管用什么用户操作,只要是DB03库,所有的操作日志都会记录下来,比如这的postgres用户和appuser用户的所有操作都记录了下来。
  5. -- 从这里开始,记录DB03库上的所有操作
  6. 2025-08-02 14:03:47.860 CST [375154] user=appuser,db=db03,app=[unknown],host=***.***.***.*** LOG:  AUDIT: SESSION,1,1,MISC,SET,,,SET extra_float_digits = 3,<not logged>
  7. 2025-08-02 14:03:47.873 CST [375154] user=appuser,db=db03,app=PostgreSQL JDBC Driver,host=***.***.***.*** LOG:  AUDIT: SESSION,2,1,MISC,SET,,,SET application_name = 'PostgreSQL JDBC Driver',<not logged>
  8. 2025-08-02 14:03:47.886 CST [375154] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,3,1,MISC,SET,,,SET application_name = 'DBeaver 25.1.0 - SQLEditor <Script-8.sql>',<not logged>
  9. 2025-08-02 14:03:47.899 CST [375154] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,4,1,READ,SELECT,,,"SELECT current_schema(),session_user",<not logged>
  10. 2025-08-02 14:03:47.913 CST [375154] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,5,1,MISC,SHOW,,,SHOW search_path,<not logged>
  11. 2025-08-02 14:03:52.387 CST [375155] user=postgres,db=db03,app=DBeaver 25.1.0 - Main <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,1,1,READ,SELECT,,,"SELECT current_schema(),session_user",<not logged>
  12. 2025-08-02 14:03:52.399 CST [375155] user=postgres,db=db03,app=DBeaver 25.1.0 - Main <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,2,1,READ,SELECT,,,"SELECT n.oid,n.*,d.description FROM pg_catalog.pg_namespace n
  13.         LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=n.oid AND d.objsubid=0 AND d.classoid='pg_namespace'::regclass
  14.          ORDER BY nspname",<not logged>
  15. 2025-08-02 14:03:52.410 CST [375155] user=postgres,db=db03,app=DBeaver 25.1.0 - Main <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,3,1,READ,SELECT,,,"SELECT n.nspname = ANY(current_schemas(true)), n.nspname, t.typname FROM pg_catalog.pg_type t JOIN pg_catalog.pg_namespace n ON t.typnamespace = n.oid WHERE t.oid = $1",<not logged>
  16. 2025-08-02 14:03:52.421 CST [375155] user=postgres,db=db03,app=DBeaver 25.1.0 - Main <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,4,1,READ,SELECT,,,"SELECT typinput='pg_catalog.array_in'::regproc as is_array, typtype, typname, pg_type.oid   FROM pg_catalog.pg_type   LEFT JOIN (select ns.oid as nspoid, ns.nspname, r.r           from pg_namespace as ns           join ( select s.r, (current_schemas(false))[s.r] as nspname                    from generate_series(1, array_upper(current_schemas(false), 1)) as s(r) ) as r          using ( nspname )        ) as sp     ON sp.nspoid = typnamespace  WHERE pg_type.oid = $1  ORDER BY sp.r, pg_type.oid DESC",<not logged>
  17. 2025-08-02 14:03:52.552 CST [375156] user=postgres,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,1,1,READ,SELECT,,,"SELECT current_schema(),session_user",<not logged>
  18. 2025-08-02 14:03:52.580 CST [375156] user=postgres,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,2,1,READ,SELECT,,,"SELECT t.oid,t.*,c.relkind,format_type(nullif(t.typbasetype, 0), t.typtypmod) as base_type_name, d.description
  19.         FROM pg_catalog.pg_type t
  20.         LEFT OUTER JOIN pg_catalog.pg_type et ON et.oid=t.typelem
  21.         LEFT OUTER JOIN pg_catalog.pg_class c ON c.oid=t.typrelid
  22.         LEFT OUTER JOIN pg_catalog.pg_description d ON t.oid=d.objoid
  23.         WHERE t.typname IS NOT NULL
  24.         AND (c.relkind IS NULL OR c.relkind = 'c') AND (et.typcategory IS NULL OR et.typcategory <> 'C')",<not logged>
  25. 2025-08-02 14:03:52.633 CST [375156] user=postgres,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,3,1,READ,SELECT,,,SELECT * FROM pg_catalog.pg_enum,<not logged>
  26. 2025-08-02 14:03:53.260 CST [375157] user=postgres,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-6.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,1,1,READ,SELECT,,,"SELECT current_schema(),session_user",<not logged>
  27. 2025-08-02 14:04:01.451 CST [375156] user=postgres,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,4,1,READ,SELECT,,,"SELECT c.oid,c.*,d.description,pg_catalog.pg_get_expr(c.relpartbound, c.oid) as partition_expr,  pg_catalog.pg_get_partkeydef(c.oid) as partition_key
  28.         FROM pg_catalog.pg_class c
  29.         LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=c.oid AND d.objsubid=0 AND d.classoid='pg_class'::regclass
  30.         WHERE c.relnamespace=$1 AND c.relkind not in ('i','I','c') AND relname=$2",<not logged>
  31. 2025-08-02 14:04:01.464 CST [375156] user=postgres,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,5,1,READ,SELECT,,,"SELECT c.oid,c.*,d.description,pg_catalog.pg_get_expr(c.relpartbound, c.oid) as partition_expr,  pg_catalog.pg_get_partkeydef(c.oid) as partition_key
  32.         FROM pg_catalog.pg_class c
  33.         LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=c.oid AND d.objsubid=0 AND d.classoid='pg_class'::regclass
  34.         WHERE c.relnamespace=$1 AND c.relkind not in ('i','I','c')",<not logged>
  35. 2025-08-02 14:04:01.478 CST [375156] user=postgres,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,6,1,READ,SELECT,,,"SELECT c.oid,c.*,d.description,pg_catalog.pg_get_expr(c.relpartbound, c.oid) as partition_expr,  pg_catalog.pg_get_partkeydef(c.oid) as partition_key
  36.         FROM pg_catalog.pg_class c
  37.         LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=c.oid AND d.objsubid=0 AND d.classoid='pg_class'::regclass
  38.         WHERE c.relnamespace=$1 AND c.relkind not in ('i','I','c')",<not logged>
  39. 2025-08-02 14:04:01.515 CST [375156] user=postgres,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,7,1,READ,SELECT,,,"SELECT n.nspname = ANY(current_schemas(true)), n.nspname, t.typname FROM pg_catalog.pg_type t JOIN pg_catalog.pg_namespace n ON t.typnamespace = n.oid WHERE t.oid = $1",<not logged>
  40. 2025-08-02 14:04:01.529 CST [375156] user=postgres,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,8,1,READ,SELECT,,,"SELECT typinput='pg_catalog.array_in'::regproc as is_array, typtype, typname, pg_type.oid   FROM pg_catalog.pg_type   LEFT JOIN (select ns.oid as nspoid, ns.nspname, r.r           from pg_namespace as ns           join ( select s.r, (current_schemas(false))[s.r] as nspname                    from generate_series(1, array_upper(current_schemas(false), 1)) as s(r) ) as r          using ( nspname )        ) as sp     ON sp.nspoid = typnamespace  WHERE pg_type.oid = $1  ORDER BY sp.r, pg_type.oid DESC",<not logged>
  41. 2025-08-02 14:04:01.544 CST [375156] user=postgres,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,9,1,READ,SELECT,,,"SELECT c.relname,a.*,pg_catalog.pg_get_expr(ad.adbin, ad.adrelid, true) as def_value,dsc.description,dep.objid
  42.         FROM pg_catalog.pg_attribute a
  43.         INNER JOIN pg_catalog.pg_class c ON (a.attrelid=c.oid)
  44.         LEFT OUTER JOIN pg_catalog.pg_attrdef ad ON (a.attrelid=ad.adrelid AND a.attnum = ad.adnum)
  45.         LEFT OUTER JOIN pg_catalog.pg_description dsc ON (c.oid=dsc.objoid AND a.attnum = dsc.objsubid)
  46.         LEFT OUTER JOIN pg_depend dep on dep.refobjid = a.attrelid AND dep.deptype = 'i' and dep.refobjsubid = a.attnum and dep.classid = dep.refclassid
  47.         WHERE NOT a.attisdropped AND c.relkind not in ('i','I','c') AND c.oid=$1
  48.         ORDER BY a.attnum",<not logged>
  49. 2025-08-02 14:04:04.693 CST [375157] user=postgres,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-6.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,2,1,READ,SELECT,,,"select name,setting from pg_settings where name like '%audit%'",<not logged>
  50. 2025-08-02 14:04:04.711 CST [375157] user=postgres,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-6.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,3,1,READ,SELECT,,,"SELECT c.oid, a.attnum, a.attname, c.relname, n.nspname, a.attnotnull OR (t.typtype = 'd' AND t.typnotnull), a.attidentity != '' OR pg_catalog.pg_get_expr(d.adbin, d.adrelid) LIKE '%nextval(%' FROM pg_catalog.pg_class c JOIN pg_catalog.pg_namespace n ON (c.relnamespace = n.oid) JOIN pg_catalog.pg_attribute a ON (c.oid = a.attrelid) JOIN pg_catalog.pg_type t ON (a.atttypid = t.oid) LEFT JOIN pg_catalog.pg_attrdef d ON (d.adrelid = a.attrelid AND d.adnum = a.attnum) JOIN (SELECT 12104 AS oid , 1 AS attnum UNION ALL SELECT 12104, 2) vals ON (c.oid = vals.oid AND a.attnum = vals.attnum) ",<not logged>
  51. 2025-08-02 14:04:14.669 CST [375156] user=postgres,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,10,1,READ,SELECT,,,"SELECT c.relname,a.*,pg_catalog.pg_get_expr(ad.adbin, ad.adrelid, true) as def_value,dsc.description,dep.objid
  52.         FROM pg_catalog.pg_attribute a
  53.         INNER JOIN pg_catalog.pg_class c ON (a.attrelid=c.oid)
  54.         LEFT OUTER JOIN pg_catalog.pg_attrdef ad ON (a.attrelid=ad.adrelid AND a.attnum = ad.adnum)
  55.         LEFT OUTER JOIN pg_catalog.pg_description dsc ON (c.oid=dsc.objoid AND a.attnum = dsc.objsubid)
  56.         LEFT OUTER JOIN pg_depend dep on dep.refobjid = a.attrelid AND dep.deptype = 'i' and dep.refobjsubid = a.attnum and dep.classid = dep.refclassid
  57.         WHERE NOT a.attisdropped AND c.relkind not in ('i','I','c') AND c.oid=$1
  58.         ORDER BY a.attnum",<not logged>
  59. 2025-08-02 14:04:14.683 CST [375156] user=postgres,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,11,1,READ,SELECT,,,"SELECT c.relname,a.*,pg_catalog.pg_get_expr(ad.adbin, ad.adrelid, true) as def_value,dsc.description,dep.objid
  60.         FROM pg_catalog.pg_attribute a
  61.         INNER JOIN pg_catalog.pg_class c ON (a.attrelid=c.oid)
  62.         LEFT OUTER JOIN pg_catalog.pg_attrdef ad ON (a.attrelid=ad.adrelid AND a.attnum = ad.adnum)
  63.         LEFT OUTER JOIN pg_catalog.pg_description dsc ON (c.oid=dsc.objoid AND a.attnum = dsc.objsubid)
  64.         LEFT OUTER JOIN pg_depend dep on dep.refobjid = a.attrelid AND dep.deptype = 'i' and dep.refobjsubid = a.attnum and dep.classid = dep.refclassid
  65.         WHERE NOT a.attisdropped AND c.relkind not in ('i','I','c') AND c.oid=$1
  66.         ORDER BY a.attnum",<not logged>
  67. 2025-08-02 14:04:14.931 CST [375156] user=postgres,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,12,1,READ,SELECT,,,"SELECT c.relname,a.*,pg_catalog.pg_get_expr(ad.adbin, ad.adrelid, true) as def_value,dsc.description,dep.objid
  68.         FROM pg_catalog.pg_attribute a
  69.         INNER JOIN pg_catalog.pg_class c ON (a.attrelid=c.oid)
  70.         LEFT OUTER JOIN pg_catalog.pg_attrdef ad ON (a.attrelid=ad.adrelid AND a.attnum = ad.adnum)
  71.         LEFT OUTER JOIN pg_catalog.pg_description dsc ON (c.oid=dsc.objoid AND a.attnum = dsc.objsubid)
  72.         LEFT OUTER JOIN pg_depend dep on dep.refobjid = a.attrelid AND dep.deptype = 'i' and dep.refobjsubid = a.attnum and dep.classid = dep.refclassid
  73.         WHERE NOT a.attisdropped AND c.relkind not in ('i','I','c') AND c.oid=$1
  74.         ORDER BY a.attnum",<not logged>
  75. 2025-08-02 14:04:14.955 CST [375156] user=postgres,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,13,1,READ,SELECT,,,"SELECT c.relname,a.*,pg_catalog.pg_get_expr(ad.adbin, ad.adrelid, true) as def_value,dsc.description,dep.objid
  76.         FROM pg_catalog.pg_attribute a
  77.         INNER JOIN pg_catalog.pg_class c ON (a.attrelid=c.oid)
  78.         LEFT OUTER JOIN pg_catalog.pg_attrdef ad ON (a.attrelid=ad.adrelid AND a.attnum = ad.adnum)
  79.         LEFT OUTER JOIN pg_catalog.pg_description dsc ON (c.oid=dsc.objoid AND a.attnum = dsc.objsubid)
  80.         LEFT OUTER JOIN pg_depend dep on dep.refobjid = a.attrelid AND dep.deptype = 'i' and dep.refobjsubid = a.attnum and dep.classid = dep.refclassid
  81.         WHERE NOT a.attisdropped AND c.relkind not in ('i','I','c') AND c.oid=$1
  82.         ORDER BY a.attnum",<not logged>
  83. 2025-08-02 14:04:22.622 CST [375156] user=postgres,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,14,1,READ,SELECT,,,"SELECT c.relname,a.*,pg_catalog.pg_get_expr(ad.adbin, ad.adrelid, true) as def_value,dsc.description,dep.objid
  84.         FROM pg_catalog.pg_attribute a
  85.         INNER JOIN pg_catalog.pg_class c ON (a.attrelid=c.oid)
  86.         LEFT OUTER JOIN pg_catalog.pg_attrdef ad ON (a.attrelid=ad.adrelid AND a.attnum = ad.adnum)
  87.         LEFT OUTER JOIN pg_catalog.pg_description dsc ON (c.oid=dsc.objoid AND a.attnum = dsc.objsubid)
  88.         LEFT OUTER JOIN pg_depend dep on dep.refobjid = a.attrelid AND dep.deptype = 'i' and dep.refobjsubid = a.attnum and dep.classid = dep.refclassid
  89.         WHERE NOT a.attisdropped AND c.relkind not in ('i','I','c') AND c.oid=$1
  90.         ORDER BY a.attnum",<not logged>
  91. 2025-08-02 14:04:25.190 CST [375156] user=postgres,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,15,1,READ,SELECT,,,"SELECT c.relname,a.*,pg_catalog.pg_get_expr(ad.adbin, ad.adrelid, true) as def_value,dsc.description,dep.objid
  92.         FROM pg_catalog.pg_attribute a
  93.         INNER JOIN pg_catalog.pg_class c ON (a.attrelid=c.oid)
  94.         LEFT OUTER JOIN pg_catalog.pg_attrdef ad ON (a.attrelid=ad.adrelid AND a.attnum = ad.adnum)
  95.         LEFT OUTER JOIN pg_catalog.pg_description dsc ON (c.oid=dsc.objoid AND a.attnum = dsc.objsubid)
  96.         LEFT OUTER JOIN pg_depend dep on dep.refobjid = a.attrelid AND dep.deptype = 'i' and dep.refobjsubid = a.attnum and dep.classid = dep.refclassid
  97.         WHERE NOT a.attisdropped AND c.relkind not in ('i','I','c') AND c.oid=$1
  98.         ORDER BY a.attnum",<not logged>
  99. 2025-08-02 14:04:27.307 CST [375157] user=postgres,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-6.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,4,1,READ,SELECT,,,"
  100.         select * from t01
  101.         ",<not logged>
  102. 2025-08-02 14:04:27.323 CST [375157] user=postgres,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-6.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,5,1,READ,SELECT,,,"SELECT c.oid, a.attnum, a.attname, c.relname, n.nspname, a.attnotnull OR (t.typtype = 'd' AND t.typnotnull), a.attidentity != '' OR pg_catalog.pg_get_expr(d.adbin, d.adrelid) LIKE '%nextval(%' FROM pg_catalog.pg_class c JOIN pg_catalog.pg_namespace n ON (c.relnamespace = n.oid) JOIN pg_catalog.pg_attribute a ON (c.oid = a.attrelid) JOIN pg_catalog.pg_type t ON (a.atttypid = t.oid) LEFT JOIN pg_catalog.pg_attrdef d ON (d.adrelid = a.attrelid AND d.adnum = a.attnum) JOIN (SELECT 16892 AS oid , 1 AS attnum) vals ON (c.oid = vals.oid AND a.attnum = vals.attnum) ",<not logged>
  103. 2025-08-02 14:04:27.338 CST [375156] user=postgres,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,16,1,READ,SELECT,,,"SELECT i.*,i.indkey as keys,c.relname,c.relnamespace,c.relam,c.reltablespace,tc.relname as tabrelname,dsc.description,pg_catalog.pg_get_expr(i.indpred, i.indrelid) as pred_expr,pg_catalog.pg_get_expr(i.indexprs, i.indrelid, true) as expr,pg_catalog.pg_relation_size(i.indexrelid) as index_rel_size,pg_catalog.pg_stat_get_numscans(i.indexrelid) as index_num_scans
  104.         FROM pg_catalog.pg_index i
  105.         INNER JOIN pg_catalog.pg_class c ON c.oid=i.indexrelid
  106.         INNER JOIN pg_catalog.pg_class tc ON tc.oid=i.indrelid
  107.         LEFT OUTER JOIN pg_catalog.pg_description dsc ON i.indexrelid=dsc.objoid
  108.         WHERE  i.indrelid=$1 ORDER BY tabrelname, c.relname",<not logged>
  109. 2025-08-02 14:04:27.352 CST [375156] user=postgres,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,17,1,READ,SELECT,,,"SELECT c.oid,c.*,t.relname as tabrelname,rt.relnamespace as refnamespace,d.description, case when c.contype='c' then ""substring""(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
  110.         FROM pg_catalog.pg_constraint c
  111.         INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid
  112.         LEFT OUTER JOIN pg_catalog.pg_class rt ON rt.oid=c.confrelid
  113.         LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=c.oid AND d.objsubid=0 AND d.classoid='pg_constraint'::regclass
  114.         WHERE c.conrelid=$1
  115.         ORDER BY c.oid",<not logged>
  116. 2025-08-02 14:04:27.366 CST [375156] user=postgres,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,18,1,READ,SELECT,,,"SELECT i.*,c.relnamespace FROM pg_catalog.pg_inherits i,pg_catalog.pg_class c WHERE i.inhrelid=$1 AND c.oid=i.inhparent ORDER BY i.inhseqno",<not logged>
  117. 2025-08-02 14:04:35.211 CST [375154] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,6,1,READ,SELECT,,,select * from t01,<not logged>
  118. 2025-08-02 14:04:35.228 CST [375154] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,7,1,READ,SELECT,,,"SELECT c.oid, a.attnum, a.attname, c.relname, n.nspname, a.attnotnull OR (t.typtype = 'd' AND t.typnotnull), a.attidentity != '' OR pg_catalog.pg_get_expr(d.adbin, d.adrelid) LIKE '%nextval(%' FROM pg_catalog.pg_class c JOIN pg_catalog.pg_namespace n ON (c.relnamespace = n.oid) JOIN pg_catalog.pg_attribute a ON (c.oid = a.attrelid) JOIN pg_catalog.pg_type t ON (a.atttypid = t.oid) LEFT JOIN pg_catalog.pg_attrdef d ON (d.adrelid = a.attrelid AND d.adnum = a.attnum) JOIN (SELECT 16892 AS oid , 1 AS attnum) vals ON (c.oid = vals.oid AND a.attnum = vals.attnum) ",<not logged>
  119. 2025-08-02 14:04:35.243 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,20,1,READ,SELECT,,,"SELECT i.*,i.indkey as keys,c.relname,c.relnamespace,c.relam,c.reltablespace,tc.relname as tabrelname,dsc.description,pg_catalog.pg_get_expr(i.indpred, i.indrelid) as pred_expr,pg_catalog.pg_get_expr(i.indexprs, i.indrelid, true) as expr,pg_catalog.pg_relation_size(i.indexrelid) as index_rel_size,pg_catalog.pg_stat_get_numscans(i.indexrelid) as index_num_scans
  120.         FROM pg_catalog.pg_index i
  121.         INNER JOIN pg_catalog.pg_class c ON c.oid=i.indexrelid
  122.         INNER JOIN pg_catalog.pg_class tc ON tc.oid=i.indrelid
  123.         LEFT OUTER JOIN pg_catalog.pg_description dsc ON i.indexrelid=dsc.objoid
  124.         WHERE  i.indrelid=$1 ORDER BY tabrelname, c.relname",<not logged>
  125. 2025-08-02 14:04:35.257 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,21,1,READ,SELECT,,,"SELECT c.oid,c.*,t.relname as tabrelname,rt.relnamespace as refnamespace,d.description, case when c.contype='c' then ""substring""(pg_get_constraintdef(c.oid), 7) else null end consrc_copy
  126.         FROM pg_catalog.pg_constraint c
  127.         INNER JOIN pg_catalog.pg_class t ON t.oid=c.conrelid
  128.         LEFT OUTER JOIN pg_catalog.pg_class rt ON rt.oid=c.confrelid
  129.         LEFT OUTER JOIN pg_catalog.pg_description d ON d.objoid=c.oid AND d.objsubid=0 AND d.classoid='pg_constraint'::regclass
  130.         WHERE c.conrelid=$1
  131.         ORDER BY c.oid",<not logged>
  132. 2025-08-02 14:04:35.270 CST [375002] user=appuser,db=db03,app=DBeaver 25.1.0 - Metadata <db03>,host=***.***.***.*** LOG:  AUDIT: SESSION,22,1,READ,SELECT,,,"SELECT i.*,c.relnamespace FROM pg_catalog.pg_inherits i,pg_catalog.pg_class c WHERE i.inhrelid=$1 AND c.oid=i.inhparent ORDER BY i.inhseqno",<not logged>
  133. 2025-08-02 14:04:36.766 CST [375154] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,8,1,WRITE,INSERT,,,insert into t01 values(1),<not logged>
  134. 2025-08-02 14:04:38.508 CST [375154] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,9,1,READ,SELECT,,,"
  135.         select * from t01",<not logged>
  136. 2025-08-02 14:04:39.290 CST [375154] user=appuser,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-8.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,10,1,READ,SELECT,,,"
  137.         select count(1) from t01
  138.         ",<not logged>
  139. 2025-08-02 14:04:41.537 CST [375157] user=postgres,db=db03,app=DBeaver 25.1.0 - SQLEditor <Script-6.sql>,host=***.***.***.*** LOG:  AUDIT: SESSION,6,1,READ,SELECT,,,"
  140.        
  141.         select * from t01",<not logged>
  142. -- 库级别规则查看
  143. select d.datname, r.*,unnest(r.setconfig) AS config
  144. FROM pg_db_role_setting r JOIN
  145.     pg_database d ON d.oid = r.setdatabase;
  146.    
复制代码
 
4,pgaudit审计规则查看
  1. -- 库级别规则查看
  2. select d.datname, r.*,unnest(r.setconfig) AS config
  3. FROM pg_db_role_setting r JOIN
  4.     pg_database d ON d.oid = r.setdatabase;
  5.    
  6. datname|setdatabase|setrole|setconfig                       |config                      |
  7. -------+-----------+-------+--------------------------------+----------------------------+
  8. db01   |      16442|      0|{"pgaudit.log=read, write, ddl"}|pgaudit.log=read, write, ddl|
  9. db02   |      16870|      0|{"pgaudit.log=read, write, ddl"}|pgaudit.log=read, write, ddl|
  10. db03   |      16874|      0|{"pgaudit.log=read, write, ddl"}|pgaudit.log=read, write, ddl|
  11. -- role级别规则查看
  12. select
  13.   rolname,
  14.   rolconfig
  15. from pg_roles where rolname = 'appuser';
  16. rolname|rolconfig        |
  17. -------+-----------------+
  18. appuser|{pgaudit.log=all}|
复制代码
 
5,file_fwd分析日志

使用file_fdw分析导入数据库中年分析日志
  1. SELECT * FROM pg_available_extensions where name = 'file_fdw';
  2. name    |default_version|installed_version|comment                                  |
  3. --------+---------------+-----------------+-----------------------------------------+
  4. file_fdw|1.0            |1.0              |foreign-data wrapper for flat file access|
  5. CREATE EXTENSION file_fdw;
  6. SELECT * FROM pg_extension;
  7. oid  |extname           |extowner|extnamespace|extrelocatable|extversion|extconfig                |extcondition |
  8. -----+------------------+--------+------------+--------------+----------+-------------------------+-------------+
  9. 12758|plpgsql           |      10|          11|false         |1.0       |NULL                     |NULL         |
  10. 16909|pgaudit           |      10|        2200|true          |16.1      |NULL                     |NULL         |
  11. 16914|file_fdw          |      10|        2200|true          |1.0       |NULL                     |NULL         |
  12. 16410|pg_stat_statements|      10|        2200|true          |1.10      |NULL                     |NULL         |
  13. 16812|pg_cron           |      10|          11|false         |1.6       |{16815,16814,16834,16833}|{"","","",""}|
  14. CREATE SERVER pg_file_server foreign data wrapper file_fdw;
  15. CREATE FOREIGN TABLE pg_log_csv
  16. (
  17.           log_time timestamp(3) with time zone,
  18.           user_name text,
  19.           database_name text,
  20.           process_id integer,
  21.           connection_from text,
  22.           session_id text,
  23.           session_line_num bigint,
  24.           command_tag text,
  25.           session_start_time timestamp with time zone,
  26.           virtual_transaction_id text,
  27.           transaction_id bigint,
  28.           error_severity text,
  29.           sql_state_code text,
  30.           message text,
  31.           detail text,
  32.           hint text,
  33.           internal_query text,
  34.           internal_query_pos integer,
  35.           context text,
  36.           query text,
  37.           query_pos integer,
  38.           location text,
  39.           application_name text,
  40.           backend_type text,
  41.           leader_pid integer,
  42.           query_id bigint
  43. )
  44. SERVER pg_file_server OPTIONS(filename '/usr/local/pgsql16/pg9300/data/log/postgresql-2025-08-01_134452.csv',format 'csv');
  45. SELECT * FROM pg_log_csv;
  46. log_time                     |user_name|database_name|process_id|connection_from   |session_id    |session_line_num|command_tag   |session_start_time           |virtual_transaction_id|transaction_id|error_severity|sql_state_code|message                                                                                                                                                                                                                                                        |detail|hint|internal_query|internal_query_pos|context|query                                                                                                                          |query_pos|location|application_name                              |backend_type    |leader_pid|query_id            |
  47. -----------------------------+---------+-------------+----------+------------------+--------------+----------------+--------------+-----------------------------+----------------------+--------------+--------------+--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+----+--------------+------------------+-------+-------------------------------------------------------------------------------------------------------------------------------+---------+--------+----------------------------------------------+----------------+----------+--------------------+
  48. 2025-08-02 03:44:52.909 +0800|         |             |    374918|                  |688c5454.5b886|               1|              |2025-08-02 03:44:52.000 +0800|                      |             0|LOG           |00000         |starting PostgreSQL 16.4 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0, 64-bit                                                                                                                                                 |      |    |              |                  |       |                                                                                                                               |         |        |                                              |postmaster      |          |                   0|
  49. 2025-08-02 03:44:52.909 +0800|         |             |    374918|                  |688c5454.5b886|               2|              |2025-08-02 03:44:52.000 +0800|                      |             0|LOG           |00000         |listening on IPv4 address "0.0.0.0", port 9300                                                                                                                                                                                                                 |      |    |              |                  |       |                                                                                                                               |         |        |                                              |postmaster      |          |                   0|
  50. 2025-08-02 03:44:52.909 +0800|         |             |    374918|                  |688c5454.5b886|               3|              |2025-08-02 03:44:52.000 +0800|                      |             0|LOG           |00000         |listening on IPv6 address "::", port 9300                                                                                                                                                                                                                      |      |    |              |                  |       |                                                                                                                               |         |        |                                              |postmaster      |          |                   0|
  51. 2025-08-02 03:44:52.914 +0800|         |             |    374918|                  |688c5454.5b886|               4|              |2025-08-02 03:44:52.000 +0800|                      |             0|LOG           |00000         |listening on Unix socket "/tmp/.s.PGSQL.9300"                                                                                                                                                                                                                  |      |    |              |                  |       |                                                                                                                               |         |        |                                              |postmaster      |          |                   0|
  52. ……
复制代码
 

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册