自学内容网 自学内容网

99:PostgreSQL开启SQL语句日志收集

为了开启连接PostgreSQL的各个客户端执行SQL语句的情况,开启SQL语句日志收集(或者称SQL审计)。

对postgresql.conf配置文件中下面项进行配置,示例如下:

#是否开启日志收集(包括系统日志、错误日志等)
logging_collector = on
#日志文件目录。相对于$PGDATA的子目录
log_directory = 'log' 
#日志文件名
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
#日志文件权限。默认0600。如果希望服务器上其他用户也能读取则0644(存在泄露信息风险)
log_file_mode = 0600
#按日志文件时长切换日志。默认1d表示24小时。0为不按时长切换
log_rotation_age = 1d
#按日志文件大小切换日志。默认10MB。 0为不按大小切换
log_rotation_size = 0
#日志内容项定义
log_line_prefix = '%m [%p] %a %u %d %r '


#------- 以下与记录SQL语句密切相关 -------

#记录SQL范围,类型可为:none, ddl, mod, all
log_statement = 'mod'

#记录语句执行时长(单位毫秒)。超过本阈值才对语句执行时长进行记录
# -1 is disabled, 
# 0 logs all statements and their durations
# > 0 logs only statements running at least this number of milliseconds
log_min_duration_statement = 0

#是否记录连接创建(例如登录)
log_connections = on

#是否记录连接端口(例如登出)
log_connections = on

#是否记录获取锁超时。当会话获取lock时长大于等于deadlock_timeout配置则记录
log_lock_waits = on

配置完毕后,通过pg_ctl进行重启PostgreSQL服务端。

另外:如果需要更精细、更丰富的SQL审计功能,可以使用pgaudit插件(扩展extensions)https://github.com/pgaudit/pgaudit/


原文地址:https://blog.csdn.net/zyplanke/article/details/140554562

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!