2015-05-14 27 views
1

我有一個生產數據庫,用戶可以創建一組表繼承主表X.問題是當我想爲所有表應用自動授予;授予一個自動選擇所有表/ PostgreSQL

當然,使用此命令:GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only ;這隻適用於已經創建的表。

目的是爲所有最新的表格應用命令。

注:我已經嘗試過做一個觸發對錶的pg_class, pg_namespace但它是不可能的,這是一個爲pg_tables 觀點是相同的;

回答

2

可以爲新創建的對象的默認補助與ALTER DEFAULT PRIVILEGES命令,如:

ALTER DEFAULT PRIVILEGES 
FOR USER creator_role IN SCHEMA public 
GRANT SELECT ON TABLES TO read_only; 

順便說一句,而你不能在系統目錄中安裝觸發器,可以實現同樣的事情(在Postgres 9.3+)與event triggers,其中任何CREATE/DROP/ALTER聲明。

+0

我用下面的命令解決了這個問題:'修改SCHEMA中的默認權限public GRANT SELECT TO TABLES to read_only;' – bilelovitch

相關問題