2010-04-16 138 views
4

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

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

谢谢,
大卫

回答

3

你可以在PostgreSQL的支持句日志记录:

postgresql.conf中:

log_statement = 'all'     # none, ddl, mod, all 

然后重新启动数据库和所有senteces将被记录。

1

您可以采取日志文件并使用cvslog format将其导入到数据库中,或者使用类似syslog-ng的设置将消息放回到postgres或其他数据库中。