Postgresql

有沒有辦法防止 PostgreSQL 中的“重置角色”

  • January 9, 2021

有沒有辦法阻止使用者在 PostgreSQL 中執行“重置角色”,從而獲得他可能沒有的權限?

我的架構在單個伺服器上包含許多數據庫。API 連接到本地 PostgreSQL 伺服器上的多個數據庫。我曾計劃使用 Pgbouncer,但聽起來我必須將 pgbouncer 中的一個數據庫/使用者映射到 PostgreSQL 中的同一個數據庫/使用者,這聽起來適得其反。相反,我希望能夠重用連接,但在連接時對不同的使用者有不同的授權。

1 RESET ROLE只會將您“返回”回您用於登錄的角色。這裡SET ROLE rolename

必須是目前會話使用者所屬的角色

因此,“獲得他可能沒有的許可”並非如此。

2 pgbouncer 確實需要這樣的映射。

3為“重用連接,但在連接時對不同的使用者有不同的授權”。您可以使用與 非常相似的設置授權SET ROLE

我相信沒有會話池可以為你做這件事……

帶有令牌的PostgreSQL set_user 擴展模組可能是一個選項。

你可以讓 PgBouncer 使用server_reset_query.

引用自:https://dba.stackexchange.com/questions/147453