PostgreSQL技術(shù)大講堂 - 第49講:實(shí)例層連接訪問控制
最新學(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ì)熱愛PG、學(xué)習(xí)PG的同學(xué)們有幫助,歡迎持續(xù)關(guān)注CUUG PG技術(shù)大講堂。
第49講:實(shí)例連接訪問控制
內(nèi)容1:PostgreSQL實(shí)例訪問控制概述
內(nèi)容2:pg_hba.conf文件配置
PostgreSQL實(shí)例訪問控制概述
實(shí)例訪問控制就像是一道防火墻,用它來控制來自于不同主機(jī)、不同用戶是否允許訪問指定的數(shù)據(jù)庫(kù)、以及驗(yàn)證方式。
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文件。不過我們也可以把認(rèn)證配置文件放在其它地方。
· pg_hba.conf文件的常用格式是一組記錄,每行一條。空白行將被忽略, #注釋字符后面的任何文本也被忽略。記錄不能跨行。
· 一條記錄由若干用空格/或制表符分隔的域組成。如果域值用雙引號(hào)包圍,那么它可以包含空格。在數(shù)據(jù)庫(kù)、用戶或地址域中 引用一個(gè)關(guān)鍵字(例如,all或replication)將使該詞失去其特殊 含義,并且只是匹配一個(gè)有該名字的數(shù)據(jù)庫(kù)、用戶或主機(jī)。
名單格式
TYPE:指定連接類型
local:表示本地連接,只對(duì)Unix/Linux系統(tǒng)有效,使用socket方式登錄
host:表示主機(jī)通過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:指定訪問的客戶端主機(jī)
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)部用戶,并且登錄時(shí)只能用映射的用戶登錄,實(shí)現(xiàn)操作系統(tǒng)和數(shù)據(jù)庫(kù)雙驗(yàn)證。操作系統(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)求。
常見配置實(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 all 0.0.0.0/0 ident map=cuug
常見配置實(shí)例
# MAPNAME SYSTEM-USERNAME PG-USERNAME
mapcuug cuugsys cuugpg
-->> 以上就是【PostgreSQL從小白到專家】第49講:實(shí)例連接訪問控制 的內(nèi)容,歡迎一起探討交流,往期視頻及文檔,聯(lián)系CUUG客服
- 冉乃綱-老師CUUG金牌講師
- 冉老師 CUUG金牌講師 Oracle及RedHat高級(jí)講師、Unix/Linux 資深專家...[詳細(xì)了解老師]

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