dblink_connect_u — 以不安全的方式開啟到遠端資料庫的持久連線
dblink_connect_u(text connstr) returns text dblink_connect_u(text connname, text connstr) returns text
dblink_connect_u()
與 dblink_connect()
完全相同,但它允許非超級使用者使用任何身份驗證方法進行連線。
如果遠端伺服器選擇一種不涉及密碼的身份驗證方法,則可能發生冒充和後續的許可權提升,因為會話似乎源自本地 PostgreSQL 伺服器執行的使用者。此外,即使遠端伺服器確實要求密碼,也有可能從伺服器環境(例如屬於伺服器使用者的 ~/.pgpass
檔案)提供密碼。這不僅帶來了冒充的風險,而且還可能將密碼暴露給不值得信賴的遠端伺服器。因此,dblink_connect_u()
最初安裝時會撤銷對 PUBLIC
的所有許可權,使其除了超級使用者外無法呼叫。在某些情況下,將 dblink_connect_u()
的 EXECUTE
許可權授予被認為值得信賴的特定使用者可能是合適的,但應謹慎行事。還建議伺服器使用者擁有的任何 ~/.pgpass
檔案 不要 包含任何指定萬用字元主機名的記錄。
有關更多詳細資訊,請參閱 dblink_connect()
。
如果您在文件中發現任何不正確之處、與您對特定功能的實際體驗不符之處或需要進一步澄清之處,請使用 此表單 報告文件問題。