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