1. 程式人生 > >PostgreSQL啟動過程中的那些事十五.一:pg_hba.conf的用法

PostgreSQL啟動過程中的那些事十五.一:pg_hba.conf的用法

例20-1. pg_hba.conf 記錄的例子

# Allow any user on the local system to connect to any database under


# 允許在本機上的任何使用者使用 Unix 域套接字(本地連線的預設)以任何資料庫使用者身份連線任何資料庫


# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD


local  all         all                               trust





# 和上面相同,但是使用的是迴環的(loopback)TCP/IP 連線


# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD


host    all         all         127.0.0.1/32          trust 



    

# 和上面一行相同,但是用的是獨立的掩碼欄位


# TYPE  DATABASE    USER        IP-ADDRESS    IP-MASK             METHOD


host    all         all         127.0.0.1     255.255.255.255     trust     





# 允許 IP 地址為 192.168.93.x 的任何主機與 "postgres" 資料庫相連,


# 用與他們在自己的主機上相同 ident 的使用者名稱標識他自己(通常是他的 Unix 使用者名稱)

# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD


host    postgres    all         192.168.93.0/24       ident sameuser





# 允許來自主機 192.168.12.10 的使用者提供了正確的口令之後與 "postgres" 資料庫連線。


# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
host    postgres    all         192.168.12.10/32      md5



# 如果前面沒有其它 "host" 行,那麼下面兩行將拒絕所有來自 192.168.54.1 的連線請求(因為前面的記錄先匹配)。


# 但是允許來自網際網路上其它任何地方的有效的 Kerberos 5 認證的連線。

 # 零掩碼錶示不考慮主機 IP 的任何位。因此它匹配任何主機。


# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD


host    all         all         192.168.54.1/32       reject

host    all         all         0.0.0.0/0             krb5





# 允許來自 192.168.x.x 的任何使用者與任意資料庫連線,只要他們通過 ident 檢查。


# 但如果 ident 說該使用者是 "bryanh" 且他要求以 PostgreSQL 使用者 "guest1" 連線,


# 那麼只有在 pg_ident.conf 裡有 "omicron" 的對映說 "bryanh" 允許以 "guest1" 進行連線時才真正可以進行連線。


# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD


host    all         all         192.168.0.0/16        ident omicron




# 如果下面是用於本地連線的僅有的三行,那麼它們將允許本地使用者只和同名數據庫連線。


# 只有管理員和 "support" 角色裡的成員例外,他們可以連線到任何資料庫。


# $PGDATA/admins 檔案列出了那些允許與所有資料庫連線的使用者名稱。


# 在所有情況下都需要口令。


# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD


local   sameuser    all                               md5

local   all         @admins                           md5


local   all          support                          md5




# 上面最後兩行可以合起來寫成一行


local   all         @admins, support                  md5




# 資料庫欄位也可以使用列表和檔名:


local   db1,db2,@demodbs  all                         md5