2016-05-01 62 views

回答

1

我想你可以在默認情況下通過創建event trigger.

我沒有嘗試這樣做可能使它但這應該足以讓你開始。

在這種情況下,您實際上擁有在任何CREATE TABLE之後運行並啓用行級別安全性的功能。

PostgreSQL 9.5的PostgreSQL文檔在http://www.postgresql.org/docs/9.5/static/functions-event-triggers.html上,可用於獲取表格信息的函數。這看起來可行。

+0

當然!感謝您指點我正確的方向。 –

3

默認情況下,行級安全性無法啓用或禁用。你必須ALTER TABLE ... ENABLE ROW LEVEL SECURITY。但是,我不明白你怎麼能忘記它,因爲表格最初只能由其所有者訪問。如果您隨後使用CREATE POLICY創建行安全策略,則您仍然無法訪問,因此您會知道自己做錯了什麼。

你可以問自己爲什麼要以ALTER TABLE ... ENABLE ROW LEVEL SECURITY開頭,但這是postgresql-devel郵件列表的問題,而不是SO。

+1

好的。我認爲這是因爲性能原因。行級安全性啓用時,'COPY'命令轉換爲普通的'INSERT'。我相信還有其他原因。當我創建一個策略並授予角色「授予」權限時,默認情況下未啓用該事實是一個問題。如果我沒有運行'ENABLE ROW SECURITY',那麼這個策略將不會被應用。 –