我有一个包含敏感数据的表,根据数据保护政策,我们必须记录每次数据的读/写,包括行标识符和访问表的用户。写入不是使用触发器的问题,但SELECT
语句不支持触发器。
这样做的最佳方法是什么?我已经查看了规则,但我无法将它们INSERT
放到表中,我已经尝试记录每个查询,但这似乎不记录SELECT
语句。理想情况下,为了安全起见,我想将日志保存在数据库的表中,但是记录到文件也很好。
谢谢,
大卫
答案 0 :(得分:3)
您可以在PostgreSQL中启用SENTENCE LOGGING:
在postgresql.conf中:
log_statement = 'all' # none, ddl, mod, all
然后重新启动数据库,将记录所有的数据。
答案 1 :(得分:1)
您可以使用cvslog format获取日志文件并将其导入数据库,或者设置syslog-ng之类的内容将消息放回postgres或其他数据库。