簡體   English   中英

允許架構中所有表的“SELECT”權限,包括由不同用戶創建的新表(AWS RDS;PostgreSQL 11)

[英]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_superuserpostgres用戶身份運行這些命令(我正在使用 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM