我有一个包含敏感数据的表,根据数据保护策略,我们必须记录数据的每次读/写,包括行标识符和访问表的用户。SELECT
使用触发器编写没有问题,但语句不支持触发器。
这样做的最佳方法是什么?我查看了规则,但无法将它们INSERT
放入表中,并且我尝试记录每个查询,但这似乎没有记录SELECT
语句。理想情况下,出于安全考虑,我希望将日志保存在数据库的表中,但记录到文件也可以。
谢谢,
大卫
我有一个包含敏感数据的表,根据数据保护策略,我们必须记录数据的每次读/写,包括行标识符和访问表的用户。SELECT
使用触发器编写没有问题,但语句不支持触发器。
这样做的最佳方法是什么?我查看了规则,但无法将它们INSERT
放入表中,并且我尝试记录每个查询,但这似乎没有记录SELECT
语句。理想情况下,出于安全考虑,我希望将日志保存在数据库的表中,但记录到文件也可以。
谢谢,
大卫
您可以在 PostgreSQL 中启用 SENTENCE LOGGING:
在 postgresql.conf 中:
log_statement = 'all' # none, ddl, mod, all
然后重新启动你的数据库,所有的句子都会被记录下来。
您可以获取日志文件并使用cvslog 格式将它们导入数据库,或者设置syslog-ng之类的东西将消息放回 postgres 或其他数据库。