2010-04-16 63 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或其他數據庫中。