在 PostgreSQL 8.4 中记录 SELECT 语句

Dav*_*ell 5 sql postgresql logging select rules

我有一个包含敏感数据的表,根据数据保护策略,我们必须记录数据的每次读/写,包括行标识符和访问该表的用户。使用触发器编写没有问题,但SELECT语句不支持触发器。

这样做的最佳方法是什么?我查看了规则,但无法将它们INSERT放入表中,并且我尝试记录每个查询,但这似乎没有记录SELECT语句。理想情况下,为了安全起见,我想将日志保存在数据库的表中,但记录到文件也很好。

谢谢,
大卫

Pab*_*ruz 3

您可以在 PostgreSQL 中启用 SENTENCE LOGGING:

在 postgresql.conf 中:

log_statement = 'all'                   # none, ddl, mod, all
Run Code Online (Sandbox Code Playgroud)

然后重新启动数据库,所有句子将被记录。