Postgresql
如何授予所有類型的 USAGE 權限?
如何授予架構中所有類型的 USAGE 權限?對於我們可以使用的表和函式
ALL TABLES IN SCHEMA schema_name
,但類型不支持:GRANT { USAGE | ALL [ PRIVILEGES ] } ON TYPE type_name [, ...] TO role_specification [, ...] [ WITH GRANT OPTION ]
我知道我可以設置預設權限,但在這種情況下,我已經安裝了具有多種類型的擴展,然後再執行此操作。
我們可以使用動態 sql 和 psql、Sub out
user1
和user2
使用者名來做到這一點。隨意刪除。您可能也只想要DOMAIN
或USER-DEFINED TYPE
調整它應該非常簡單。SELECT format( $$GRANT USAGE ON TYPE %s TO %s;$$, format('%I.%I.%I', object_catalog, object_schema, object_name ), grantUser ) FROM information_schema.element_types CROSS JOIN (VALUES ('user1'),('user2')) AS t(grantUser) WHERE object_type IN ('USER-DEFINED TYPE', 'DOMAIN');
然後執行
\gexec
您也可以在一個
do
塊中執行它PERFORM