PostgreSQL 信任認(rèn)證

2021-08-31 15:08 更新

當(dāng)trust認(rèn)證被指定時(shí),PostgreSQL假設(shè)任何可以連接到服務(wù)器的人都被授權(quán)使用他們指定的任何數(shù)據(jù)庫用戶名(即使是超級用戶)訪問數(shù)據(jù)庫。當(dāng)然,在databaseuser列中設(shè)置的限制仍然適用。只有當(dāng)在操作系統(tǒng)層對進(jìn)入服務(wù)器的連接有足夠保護(hù)時(shí),才應(yīng)該使用這種方法。

trust認(rèn)證對于單用戶工作站的本地連接是非常合適和方便的。通常它本身適用于一臺(tái)多用戶機(jī)器。不過,只要你利用文件系統(tǒng)權(quán)限限制了對服務(wù)器的 Unix 域套接字文件的訪問,即使在多用戶機(jī)器上,你也可以使用trust。 要做這些限制,你可以設(shè)置第 19.3 節(jié)中描述的unix_socket_permissions配置參數(shù)(可能還有unix_socket_group)。 或者你可以設(shè)置unix_socket_directories配置參數(shù)來把 Unix 域套接字文件放在一個(gè)經(jīng)過恰當(dāng)限制的目錄中。

設(shè)置文件系統(tǒng)權(quán)限只能有助于 Unix 套接字連接。本地 TCP/IP 連接不會(huì)被文件系統(tǒng)權(quán)限限制。因此,如果你想利用文件系統(tǒng)權(quán)限來控制本地安全,那么從pg_hba.conf中移除host ... 127.0.0.1 ...行,或者把它改為一個(gè)非trust認(rèn)證方法。

如果通過指定trustpg_hba.conf行讓你信任每一個(gè)被允許連接到服務(wù)器的機(jī)器上的用戶,trust認(rèn)證只適合 TCP/IP 連接。為任何不是來自localhost(127.0.0.1)的 TCP/IP 連接使用trust很少是合理的。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號