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()
。
如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用 此表單 回報文件問題。