[英]Allowing `SELECT` Privileges on all tables in schema including new tables created by different users (AWS RDS; PostgreSQL 11)
我有一個readonly
用戶,我定義如下:
CREATE ROLE readonly;
GRANT CONNECT ON DATABASE dbname TO readonly;
GRANT USAGE ON SCHEMA public TO readonly;
GRANT USAGE ON SCHEMA schema_name TO readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA schema_name TO readonly;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonly;
ALTER DEFAULT PRIVILEGES IN SCHEMA schema_name GRANT SELECT ON TABLES TO readonly;
我目前以rds_superuser
的postgres
用戶身份運行這些命令(我正在使用 AWS RDS)。 這工作正常,並允許readonly
角色讀取postgres
用戶創建的現有表,以及postgres
創建的任何新表。 但是,當新角色創建表時, readonly
不能SELECT
新角色創建的表。 例如,我也有一個讀寫角色,並且通過readwrite
在該模式中創建的表不能是readwrite
SELECT
readonly
。
如何在 PostgreSQL 中創建只讀用戶? 建議默認情況下ALTER DEFAULT PRIVILEGES...
僅適用於默認情況下由發出命令的用戶創建的對象。
我怎樣才能更一般地只允許readonly
用戶在架構中創建的任何表上擁有SELECT
權限,而不管是誰創建它。
您將需要更改任何潛在創建者的默認權限,例如對於您的readwrite
角色,使用以下
ALTER DEFAULT PRIVILEGES for role readwrite
IN SCHEMA public GRANT SELECT ON TABLES TO readonly;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.