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/

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值