PostgreSQL技術大講堂 - Part 9:pg_hba.conf配置

unix_5359發表於2023-03-06
PostgreSQL技術大講堂 - 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例項訪問控制概述

 例項訪問控制就像是一道防火牆,用它來控制來自於不同主機、不同使用者是否允許訪問指定的資料庫、以及驗證方式。

PostgreSQL技術大講堂 - 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

PostgreSQL技術大講堂 - Part 9:pg_hba.conf配置

以上就是Part 9 - PostgreSQL例項連線訪問控制 的內容,歡迎進群一起探討交流,釘釘交流群:35,82,24,60,往期影片文件可以聯絡cuug諮詢老師


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31544987/viewspace-2938313/,如需轉載,請註明出處,否則將追究法律責任。

相關文章