共計(jì) 1847 個(gè)字符,預(yù)計(jì)需要花費(fèi) 5 分鐘才能閱讀完成。
這篇文章將為大家詳細(xì)講解有關(guān) PostgreSQL 數(shù)據(jù)庫如何實(shí)現(xiàn)客戶端驗(yàn)證,丸趣 TV 小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
身份驗(yàn)證是數(shù)據(jù)庫服務(wù)器建立客戶端身份的過程,并通過擴(kuò)展確定是否允許客戶端應(yīng)用程序(或運(yùn)行客戶端應(yīng)用程序的用戶)與所請(qǐng)求的數(shù)據(jù)庫用戶名連接。
可以基于(客戶端)主機(jī)地址,數(shù)據(jù)庫和用戶來選擇用于認(rèn)證特定客戶端連接的方法。
– 1.pg_hba.conf 文件:
客戶端身份驗(yàn)證由 pg_hba.conf 配置文件控制。存儲(chǔ)在數(shù)據(jù)庫的數(shù)據(jù)目錄中。
記錄方式:
連接類型 數(shù)據(jù)庫名稱 用戶名 客戶端 IP 地址范圍 用于匹配這些參數(shù)的連接的身份驗(yàn)證方法
連接類型:
local : 匹配使用 Unix 域套接字的連接嘗試。 host : 匹配使用 TCP/IP 進(jìn)行的連接嘗試, host 記錄匹配 SSL 或非 SSL 連接嘗試。 hostssl : 匹配使用 TCP/IP 進(jìn)行的連接嘗試, 僅限使用 SSL 加密進(jìn)行連接時(shí)。 hostnossl : 僅匹配通過 TCP/IP 進(jìn)行的不使用 SSL 的連接嘗試
database : 記錄匹配的數(shù)據(jù)庫名稱. all 指定匹配所有數(shù)據(jù)庫。可以通過用逗號(hào)分隔來提供多個(gè)數(shù)據(jù)庫名稱。 user : 匹配的數(shù)據(jù)庫用戶名. 用逗號(hào)分隔來提供多個(gè)用戶名.
address : 匹配的客戶端計(jì)算機(jī)地址. 可包括主機(jī)名或 IP 地址范圍。 0.0.0.0/ 0 表示所有 IPv4 地址,::0/ 0 表示所有 IPv6 地址。
METHOD :
記錄匹配時(shí)要使用的身份驗(yàn)證方法。 trust : 允許無條件連接。允許所有連接,無需密碼和其他身份驗(yàn)證。 reject : 無條件拒絕連接。 scram-sha-256 : 執(zhí)行 SCRAM-SHA-256 身份驗(yàn)證以驗(yàn)證用戶的密碼。 MD5 : 執(zhí)行 SCRAM-SHA-256 或 MD5 身份驗(yàn)證以驗(yàn)證用戶的密碼。 password : 要求客戶端提供未加密的密碼以進(jìn)行身份驗(yàn)證。網(wǎng)絡(luò)明文傳送, 不安全。 gss : 使用 GSSAPI 對(duì)用戶進(jìn)行身份驗(yàn)證。這僅適用于 TCP/IP 連接.
ident : 與客戶端的 ident 服務(wù)器獲取客戶端主機(jī)的用戶名。并檢查它是否與請(qǐng)求的數(shù)據(jù)庫用戶名匹配。Ident 身份驗(yàn)證只能用于 TCP/IP 連接。 peer : 從操作系統(tǒng)獲取主機(jī)名, 僅適用于本地連接
cert : 使用 SSL 客戶端證書進(jìn)行身份驗(yàn)證。 pam : 使用操作系統(tǒng)提供的可插入身份驗(yàn)證模塊(PAM)服務(wù)進(jìn)行身份驗(yàn)證。
– 2. ident 用戶名:配置文件:pg_ident.conf
記錄格式: MAPNAME SYSTEM-USERNAME PG-USERNAME
用戶名映射在 ident 映射文件中定義.
– 3. 認(rèn)證方法:
信任認(rèn)證:
在與服務(wù)器的連接上有足夠的操作系統(tǒng)級(jí)保護(hù)時(shí),才應(yīng)使用.
trust 如果使用文件系統(tǒng)權(quán)限限制對(duì)服務(wù)器的 Unix 域套接字文件的訪問,則可以在多用戶計(jì)算機(jī)上使用.
密碼認(rèn)證:
scram-sha-256 身份認(rèn)證:
防止密碼嗅探不受信任的連接,并支持以加密的哈希形式在服務(wù)器上存儲(chǔ)密碼.
md5:
防止密碼嗅探并避免以明文形式在服務(wù)器上存儲(chǔ)密碼.
優(yōu)選選擇基于 SCRAM 的身份驗(yàn)證。 password 明文形式發(fā)送密碼, 連接受 SSL 加密保護(hù)才可使用。
每個(gè)數(shù)據(jù)庫用戶的密碼都存儲(chǔ)在 pg_authid 系統(tǒng)目錄中
– 4. GSSAPI 身份驗(yàn)證:
GSSAPI 提供了一種用于支持它的系統(tǒng)自動(dòng)認(rèn)證(單點(diǎn)登錄)。身份驗(yàn)證本身是安全的. 除非使用 SSL。 構(gòu)建 PostgreSQL 時(shí)必須啟用 GSSAPI 支持。 身份驗(yàn)證:
ident 身份驗(yàn)證方法的工作原理是從身份服務(wù)器獲取客戶端的操作系統(tǒng)用戶名, 并將其用作允許的數(shù)據(jù)庫用戶名, 在 TCP / IP 連接上受支持.
對(duì)等身份驗(yàn)證:
對(duì)等身份驗(yàn)證方法的工作原理是從內(nèi)核獲取客戶端的操作系統(tǒng)用戶名, 并將其用作允許的數(shù)據(jù)庫用戶名. 僅在本地連接時(shí)支持。
證書認(rèn)證:
使用 SSL 客戶端證書執(zhí)行身份驗(yàn)證. 僅適用于 SSL 連接.
使用此身份驗(yàn)證方法時(shí),服務(wù)器將要求客戶端提供有效的可信證書。沒有密碼提示將被發(fā)送到客戶端。 cn 證書的(公共名稱)屬性將與請(qǐng)求的數(shù)據(jù)庫用戶名進(jìn)行比較,如果匹配,則允許登錄.
關(guān)于“PostgreSQL 數(shù)據(jù)庫如何實(shí)現(xiàn)客戶端驗(yàn)證”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。