從小白到專家 PG技術(shù)大講堂 - Part 9:pg_hba.conf配置
最新學(xué)訊:近期OCP認(rèn)證正在報(bào)名中,因考試人員較多請(qǐng)盡快報(bào)名獲取最近考試時(shí)間,報(bào)名費(fèi)用請(qǐng)聯(lián)系在線老師,甲骨文官方認(rèn)證,報(bào)名從速!
我要咨詢
PostgreSQL從小白到專家,是從入門逐漸能力提升的一個(gè)系列教程,內(nèi)容包括對(duì)PG基礎(chǔ)的認(rèn)知、包括安裝使用、包括角色權(quán)限、包括維護(hù)管理、、等內(nèi)容,希望對(duì)熱愛(ài)PG、學(xué)習(xí)PG的同學(xué)們有幫助,歡迎持續(xù)關(guān)注CUUG PG技術(shù)大講堂。
Part 9:實(shí)例連接訪問(wèn)控制
內(nèi)容1:PG實(shí)例訪問(wèn)控制概述
內(nèi)容2:pg_hba.conf 文件
內(nèi)容3:pg_hba.conf 名單格式
內(nèi)容4:pg_hba.conf 常見(jiàn)配置實(shí)例
9.1、PG實(shí)例訪問(wèn)控制概述
實(shí)例訪問(wèn)控制就像是一道防火墻,用它來(lái)控制來(lái)自于不同主機(jī)、不同用戶是否允許訪問(wèn)指定的數(shù)據(jù)庫(kù)、以及驗(yàn)證方式。

9.2、pg_hba.conf文件
客戶端認(rèn)證是由一個(gè)配置文件(通常名為pg_hba.conf并被存放在數(shù)據(jù)目錄中)控制(HBA表示基于主機(jī)的認(rèn)證)。
在initdb初始化數(shù)據(jù)目錄時(shí),它會(huì)安裝一個(gè)默認(rèn)的pg_hba.conf文件。不過(guò)我們也可以把認(rèn)證配置文件放在其它地方。
pg_hba.conf文件的常用格式是一組記錄,每行一條。空白行將被忽略, #注釋字符后面的任何文本也被忽略。記錄不能跨行。
一條記錄由若干用空格/或制表符分隔的域組成。如果域值用雙引號(hào)包圍,那么它可以包含空格。在數(shù)據(jù)庫(kù)、用戶或地址域中 引用一個(gè)關(guān)鍵字(例如,all或replication) 將使該詞失去其特殊 含義,并且只是匹配一個(gè)有該名字的數(shù)據(jù)庫(kù)、用戶或主機(jī)。
9.3、pg_hba.conf名單格式
TYPE:指定連接類型
local:表示本地連接,只對(duì)Unix/Linux系統(tǒng)有效,使用socket方式登錄
host:表示主機(jī)通過(guò)TCP/IP連接
hostssl:表示主機(jī)連接需要SSL加密方式連接
DATABASE:指定連接的數(shù)據(jù)庫(kù)
all:表示所有的數(shù)據(jù)庫(kù)
db_name:表示指定的數(shù)據(jù)庫(kù)
replication:表示主備復(fù)制時(shí)的連接
USER:指定連接的用戶
all:表有所有用戶 ? user_name:表示指定的用戶
+group_name:表示一組用戶
@file_name:表示文件中包含的用戶列表
ADDRESS:指定連接的客戶端
127.0.0.1/32:表示本地客戶端主機(jī)
0.0.0.0/0:表示所有客戶端主機(jī)
host_name:表示指定的主機(jī)名(hosts文件中包含)
ip_addr/net_mask:表示指定的ip地址或者網(wǎng)段
pg_hba.conf 示例:
host all +g1 0.0.0.0/0 md5 #g1組
host all u1 192.168.18.0/24 md5 #某個(gè)網(wǎng)段
METHOD:指定驗(yàn)證方式
trust:信任客戶端連接,無(wú)需提供密碼
scram-sha-256:這是當(dāng)前提供的方法中最安全的一種,但是舊的客戶端庫(kù)不支持這種方法。
md5:它能防止口令嗅探并且防止口令在服務(wù)器上以明文存儲(chǔ),但是無(wú)法保護(hù)攻擊者想辦法從服務(wù)器上竊取了口令哈希的情況。
password:方法password以明文形式發(fā)送口令,因此它對(duì)于口令“嗅探”攻擊很脆弱。
ident:該模式下系統(tǒng)會(huì)將請(qǐng)求發(fā)起者的操作系統(tǒng)用戶映射為PostgesSQL數(shù)據(jù)庫(kù)內(nèi) 部用戶,并以該內(nèi)部用戶的權(quán)限登錄,且此時(shí)無(wú)需提供登錄密碼。操作系統(tǒng)用戶 與數(shù)據(jù)庫(kù)內(nèi)部用戶之間的映射關(guān)系會(huì)記錄在pg_ident.conf文件中。
peer:該模式使用連接發(fā)起端的操作系統(tǒng)名進(jìn)行身份驗(yàn)證。僅限于Linux、BSD、 Mac OS X和Solaris,并且僅可用于本地服務(wù)器發(fā)起的連接。
reject:該模式表示拒絕所有請(qǐng)求。
9.4、pg_hba.conf常見(jiàn)配置實(shí)例
常見(jiàn)配置實(shí)例
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
local replication all trust
host replication all 127.0.0.1/32 trust
host replication all ::1/128 trust
host all +g1 192.168.18.0/24 md5
host all cuug 0.0.0.0/0 identmap=cuug

以上就是Part 9 - PostgreSQL實(shí)例連接訪問(wèn)控制 的內(nèi)容,歡迎進(jìn)群一起探討交流QQ交流群:752027153
微信交流群:聯(lián)系客服拉你進(jìn)微信PG交流群
釘釘交流群:35822460,本周六晚上8點(diǎn)會(huì)在釘釘群專門講解
- 冉乃綱-老師CUUG金牌講師
- 冉老師 CUUG金牌講師 Oracle及RedHat高級(jí)講師、Unix/Linux 資深專家...[詳細(xì)了解老師]

- 陳衛(wèi)星-老師CUUG金牌講師
- 陳老師 CUUG金牌講師 精通Oracle管理、備份恢復(fù)、性能優(yōu)化 11年Ora...[詳細(xì)了解老師]
