欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 明星 > 99:PostgreSQL开启SQL语句日志收集

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

2024/10/24 21:27:02 来源:https://blog.csdn.net/zyplanke/article/details/140554562  浏览:    关键词: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/

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com