Postgresql
有沒有辦法防止 PostgreSQL 中的“重置角色”
有沒有辦法阻止使用者在 PostgreSQL 中執行“重置角色”,從而獲得他可能沒有的權限?
我的架構在單個伺服器上包含許多數據庫。API 連接到本地 PostgreSQL 伺服器上的多個數據庫。我曾計劃使用 Pgbouncer,但聽起來我必須將 pgbouncer 中的一個數據庫/使用者映射到 PostgreSQL 中的同一個數據庫/使用者,這聽起來適得其反。相反,我希望能夠重用連接,但在連接時對不同的使用者有不同的授權。
1
RESET ROLE
只會將您“返回”回您用於登錄的角色。這裡 也SET ROLE rolename
必須是目前會話使用者所屬的角色
因此,“獲得他可能沒有的許可”並非如此。
2 pgbouncer 確實需要這樣的映射。
3為“重用連接,但在連接時對不同的使用者有不同的授權”。您可以使用與 非常相似的設置授權
SET ROLE
。我相信沒有會話池可以為你做這件事……
帶有令牌的PostgreSQL set_user 擴展模組可能是一個選項。
你可以讓 PgBouncer 使用
server_reset_query
.