当前位置: 首页 > news >正文

【Postgresql】实现 PostgreSQL 全量审计日志:记录所有 SQL 操作及来源

文章目录

        • 核心配置(postgresql.conf)
        • 关键配置解析
        • 应用配置步骤
        • 日志分析示例
        • 性能影响与优化建议
        • 总结

在企业级数据库管理中,审计日志是安全合规和故障排查的关键。本文将指导您在PostgreSQL中配置完整的审计日志,实现:

  1. 记录所有SQL语句(包括SELECT)
  2. 捕获客户端来源IP地址
  3. 使用结构化格式存储日志
  4. 自动管理日志文件生命周期

核心配置(postgresql.conf)
# ━━━━━━━━━━━━━━━━━━━━━━━━━━
# 日志文件管理
# ━━━━━━━━━━━━━━━━━━━━━━━━━━
logging_collector = on  # 启用日志收集器
log_directory = 'pg_audit_log'  # 独立日志目录(建议使用单独磁盘分区)
log_filename = 'audit-%Y-%m-%d_%H%M%S.csv'  # CSV格式+时间戳命名
log_rotation_age = 1d    # 每日轮转
log_rotation_size = 100MB # 单文件最大100MB
log_truncate_on_rotation = on# ━━━━━━━━━━━━━━━━━━━━━━━━━━
# 审计内容配置
# ━━━━━━━━━━━━━━━━━━━━━━━━━━
log_connections = on      # 记录连接事件
log_disconnections = on   # 记录断开事件
log_statement = 'all'     # 记录所有SQL语句(含SELECT)
log_hostname = off        # 禁用DNS解析(直接记录IP)
log_destination = 'csvlog' # CSV结构化格式# ━━━━━━━━━━━━━━━━━━━━━━━━━━
# 附加诊断信息
# ━━━━━━━━━━━━━━━━━━━━━━━━━━
log_duration = on         # 记录语句执行时间
log_lock_waits = on       # 记录锁等待
log_temp_files = 0        # 记录所有临时文件使用

关键配置解析
  1. 日志捕获基础

    • logging_collector = on:启用后台进程捕获日志
    • log_directory:推荐使用独立磁盘分区,避免I/O竞争
  2. 审计核心配置

    • log_statement = 'all':记录所有SQL操作
      可选值:ddl(仅结构变更)/mod(数据变更+DDL)
    • log_hostname = off:直接记录IP地址,避免DNS解析延迟
    • log_destination = 'csvlog':结构化日志格式,包含25个标准字段
  3. 来源IP捕获原理
    CSV日志自动包含

http://www.dtcms.com/a/331069.html

相关文章:

  • 【C++】细说继承(2w字详解)
  • ROS机器人云实践案例博客建议和范文-AI版本
  • imx6ull-驱动开发篇24——Linux 中断API函数
  • MATLAB绘制各种心形曲线
  • window显示驱动开发—在混合系统中使用跨适配器资源
  • nginx-集成prometheus监控(k8s)
  • GitHub 热榜项目 - 日榜(2025-08-14)
  • 一、linux内存管理学习(1):物理内存探测
  • 京东商品列表API开发指南
  • OpenCV对椒盐处理后的视频进行均值滤波处理
  • Opencv 边界填充 图像运算 阈值处理 和图像平滑处理
  • 文件上传接口接收不到文件入参
  • 题解:P4777 【模板】扩展中国剩余定理(EXCRT)
  • Qt项目查找依赖库打包
  • IDEA、Pycharm、DataGrip等激活破解冲突问题解决方案之一
  • Springboot项目重启后Session依旧存在
  • Python包性能优化与并发编程:构建高性能应用的核心技术(续)
  • 轻量级开源全文搜索引擎:Manticore Search 入门介绍
  • C++基础(①入门教程)
  • 本地jar导入到本地仓科和远程仓库
  • Maven学习笔记
  • 92、23种设计模式-单例模式
  • 项目日志框架与jar中日志框架冲突 解决
  • 《多级缓存架构设计与实现全解析》
  • 自动化测试|持续集成Git使用详解
  • label studio 服务器端打开+xshell端口转发设置
  • 01数据结构-最短路径Dijkstra
  • 【数据结构入门】
  • 移动机器人底盘在高校科研中的AI智能教育应用
  • (第十五期)HTML文本格式化标签详解:让文字更有表现力