PostgreSQL的扩展(extensions)-常用的扩展之pgAudit

PostgreSQL的扩展(extensions)-常用的扩展之pgAudit

基础信息
OS版本:Red Hat Enterprise Linux Server release 7.9 (Maipo)
DB版本:16.2
pg软件目录:/home/pg16/soft
pg数据目录:/home/pg16/data
端口:5777

pgAudit 是一个 PostgreSQL 的扩展,它提供了一种方式来生成详尽的审计日志。这对于需要遵守特定监管要求的企业来说是非常重要的,比如那些必须符合 HIPAA、SOX、PCI DSS 等标准的企业。通过 pgAudit,可以对数据库中发生的各种类型的活动进行详细的记录,包括但不限于:

  • DDL(数据定义语言)操作:如 CREATE、ALTER、DROP 等。
  • DML(数据操纵语言)操作:如 SELECT、INSERT、UPDATE、DELETE 等。
  • 权限变更。
  • 函数执行。

这些详细的审计日志能够帮助组织追踪数据变更的来源,验证和确保数据访问和操作行为的合规性。

安装 pgAudit

pgAudit 的安装通常涉及到扩展的编译和加载。以下是安装过程的大概步骤(可能会根据您的操作系统和 PostgreSQL 的版本有所不同):

  1. 下载 pgAudit 扩展源码

    你可以从 pgAudit 的 GitHub 仓库或者通过你的包管理系统来获取 pgAudit 源代码。要下载对应版本的pgaudit。下载网址:https://github.com/pgaudit/pgaudit/releases
    在这里插入图片描述

  2. 编译扩展

[pg16@test resource]$ unzip pgaudit-16.0.zip 
[pg16@test resource]$ cd pgaudit-16.0/
[pg16@test pgaudit-16.0]$ make install USE_PGXS=1
  1. postgresql.conf 文件中配置

    加载 pgAudit 扩展需要在 postgresql.conf 文件中进行配置。将 pgaudit 添加到 shared_preload_libraries 配置项中:

–修改postgresql.conf 文件

shared_preload_libraries = 'pgaudit,pg_stat_statements,auto_explain'    # (change requires restart)

–系统上修改,并重启pg

postgres=# alter system set shared_preload_libraries=pgaudit,pg_stat_kcache,pg_stat_statements,auto_explain;
ALTER SYSTEM
postgres=# \q
[pg16@test ~]$ pg_ctl restart
  1. 创建扩展

使用 CREATE EXTENSION 命令在你的数据库中创建 pgAudit 扩展。

postgres=# \c white postgres
You are now connected to database "white" as user "postgres".
white=# 
white=# CREATE EXTENSION pgaudit;
CREATE EXTENSION
white=# select * from pg_extension;
  oid  |      extname       | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition 
-------+--------------------+----------+--------------+----------------+------------+-----------+--------------
 14270 | plpgsql            |       10 |           11 | f              | 1.0        |           | 
 16726 | pg_repack          |       10 |         2200 | f              | 1.5.0      |           | 
 16975 | pg_stat_statements |       10 |         2200 | t              | 1.10       |           | 
 17048 | pgaudit            |       10 |         2200 | t              | 16.0       |           | 
(4 rows)

配置 pgAudit

pgAudit 可以通过在 postgresql.conf 文件中设置参数来进行详细配置。例如:

  • pgaudit.log:这个设置允许指定将哪些类别的语句记录到审计日志中。

  • pgaudit.log_level:决定了审计条目使用的日志级别。

  • pgaudit.log_parameter:控制是否记录 SQL 语句的参数值。

通过合适的配置,可以调整 pgAudit 生成的日志详情和量级,以适应不同的需求和合规性要求。

使用实例

要配置 pgAudit 记录所有的 DDL 操作和角色更改,你可能会在 postgresql.conf 文件中设置如下:

pgaudit.log = 'ddl, role'

这个配置会让 pgAudit 仅记录数据定义语言操作和角色相关变更的日志。

注意

  • 在使用 pgAudit 之前,重要的是彻底理解其文档和配置选项。不恰当的配置可能会导致巨大的日志文件,而且可能不完全符合监管要求。

  • 考虑到性能和存储影响,合理规划审计策略至关重要。

  • 审计日志应当得到妥善管理和监控,以确保安全性和合规性。

pgAudit 提供了一种高度可配置的方式来满足 PostgreSQL 数据库审计和合规性需求,但必须谨慎配置以确保既满足需求又不会过分消耗资源。

谨记:心存敬畏,行有所止。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值