天天看點

從小白到專家 PG技術大講堂 - Part 9:pg_hba.conf配置

作者:向猿類邁進
從小白到專家 PG技術大講堂 - Part 9:pg_hba.conf配置

PostgreSQL從小白到專家,是從入門逐漸能力提升的一個系列教程,内容包括對PG基礎的認知、包括安裝使用、包括角色權限、包括維護管理、、等内容,希望對熱愛PG、學習PG的同學們有幫助,歡迎持續關注CUUG PG技術大講堂。

Part 9:執行個體連接配接通路控制

内容1:PG執行個體通路控制概述

内容2:pg_hba.conf 檔案

内容3:pg_hba.conf 名單格式

内容4:pg_hba.conf 常見配置執行個體

9.1、PG執行個體通路控制概述

執行個體通路控制就像是一道防火牆,用它來控制來自于不同主機、不同使用者是否允許通路指定的資料庫、以及驗證方式。

從小白到專家 PG技術大講堂 - Part 9:pg_hba.conf配置

9.2、pg_hba.conf檔案

用戶端認證是由一個配置檔案(通常名為pg_hba.conf并被存放在資料目錄中)控制(HBA表示基于主機的認證)。

在initdb初始化資料目錄時,它會安裝一個預設的pg_hba.conf檔案。不過我們也可以把認證配置檔案放在其它地方。

pg_hba.conf檔案的常用格式是一組記錄,每行一條。空白行将被忽略, #注釋字元後面的任何文本也被忽略。記錄不能跨行。

一條記錄由若幹用空格/或制表符分隔的域組成。如果域值用雙引号包圍,那麼它可以包含空格。在資料庫、使用者或位址域中 引用一個關鍵字(例如,all或replication) 将使該詞失去其特殊 含義,并且隻是比對一個有該名字的資料庫、使用者或主機。

9.3、pg_hba.conf名單格式

TYPE:指定連接配接類型

local:表示本地連接配接,隻對Unix/Linux系統有效,使用socket方式登入

host:表示主機通過TCP/IP連接配接

hostssl:表示主機連接配接需要SSL加密方式連接配接

DATABASE:指定連接配接的資料庫

all:表示所有的資料庫

db_name:表示指定的資料庫

replication:表示主備複制時的連接配接

USER:指定連接配接的使用者

all:表有所有使用者 ? user_name:表示指定的使用者

+group_name:表示一組使用者

@file_name:表示檔案中包含的使用者清單

ADDRESS:指定連接配接的用戶端

127.0.0.1/32:表示本地用戶端主機

0.0.0.0/0:表示所有用戶端主機

host_name:表示指定的主機名(hosts檔案中包含)

ip_addr/net_mask:表示指定的ip位址或者網段

pg_hba.conf 示例:

host all +g1 0.0.0.0/0 md5 #g1組

host all u1 192.168.18.0/24 md5 #某個網段

METHOD:指定驗證方式

trust:信任用戶端連接配接,無需提供密碼

scram-sha-256:這是目前提供的方法中最安全的一種,但是舊的用戶端庫不支援這種方法。

md5:它能防止密碼嗅探并且防止密碼在伺服器上以明文存儲,但是無法保護攻擊者想辦法從伺服器上竊取了密碼哈希的情況。

password:方法password以明文形式發送密碼,是以它對于密碼“嗅探”攻擊很脆弱。

ident:該模式下系統會将請求發起者的作業系統使用者映射為PostgesSQL資料庫内 部使用者,并以該内部使用者的權限登入,且此時無需提供登入密碼。作業系統使用者 與資料庫内部使用者之間的映射關系會記錄在pg_ident.conf檔案中。

peer:該模式使用連接配接發起端的作業系統名進行身份驗證。僅限于Linux、BSD、 Mac OS X和Solaris,并且僅可用于本地伺服器發起的連接配接。

reject:該模式表示拒絕所有請求。

9.4、pg_hba.conf常見配置執行個體

常見配置執行個體

# 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

從小白到專家 PG技術大講堂 - Part 9:pg_hba.conf配置

以上就是Part 9 - PostgreSQL執行個體連接配接通路控制 的内容,歡迎進群一起探讨交流

釘釘交流群:358,22,460,本周六晚上8點會在釘釘群專門講解

繼續閱讀