Postgresql
行級別安全策略過濾掉行時的日誌事件
我目前正在實現 2 層安全性,這意味著我們在應用程式碼和數據庫中都有 orm 查詢過濾。在數據庫中,我使用的是 Postgre 行級安全性。
在理想情況下,應用程式碼中建構的所有過濾查詢都是完美的,並且行級安全策略永遠不會刪除條目。但是,如果確實過濾掉了結果,則意味著我們在過濾應用程式碼時出現了錯誤,必須修復。我希望能夠記錄下來。
是否可以配置 Postgresql 以通知我/記錄這些事件?
您可以在策略中使用具有記錄數據副作用的函式。但這並不可靠,因為很可能在其他查詢條件之前應用了 RLS 條件,因此您會得到無論如何都不會成為結果集一部分的誤報。
我不認為有辦法做你想做的事。這不是 RLS 的工作:它使某些行對使用者不可見,因此沒有人可以看到他們不應該看到的數據。