原文地址:http://blog.chinaunix.net/uid-20684384-id-1895247.htmlhtml
1. 設置遠程訪問認證機制sql
編輯 $POSTGRES/data/pg_hba.conf 文件,數據庫
# TYPE DATABASE USER CIDR-ADDRESS METHOD # IPv4 local connections: host all all 127.0.0.1/32 md5 # IPv6 local connections: #host all all ::1/128 md5
說明:服務器
每一行有五個字段,socket
# TYPE DATABASE USER CIDR-ADDRESS METHODtcp
分別是:鏈接類型、可以使用的數據庫名、使用者、DIDR地址、和驗證方法等五項。post
下面,我只介紹一些針對每一個字段經常使用的選項。ui
字段一:TYPE。編碼
能夠選擇:local或host。spa
# TYPE DATABASE USER CIDR-ADDRESS METHOD #容許IP爲192.168.0.1的全部用戶登錄到Postgres服務器的全部數據庫,採用md5驗證。 host all all 192.168.0.1/32 md5 #容許用戶testuser在192.168.0.XX的網段任意機器登錄Postgres服務器, #只能使用數據庫testdb,採用md5驗證。 host testdb testuser 192.168.0.1/24 md5
2. 改監聽地址
默認下,POSTGRESQL只接受本地服務,要接受遠程服務,需改postgresql.conf 文件listen_address = *
3. 若是是在Linux上的PostgreSQL
要打開 「unix的tcpip套接字」。
編輯 $POSTGRES/data/postgresql.conf 文件,
將tcpip_socket=off改爲tcpip_socket=on便可。
前者只能容許本地的用戶登錄Postgres數據庫;後者能夠接受遠程客戶登錄。因此,
咱們應該使用「host」。
字段二:DATWABSE。
鏈接用戶可使用的數據庫名字。可使Postgres的一個具體的
數據庫名,也可使用「all」來容許用戶訪問全部數據庫。
字段三:USER。能夠指定某個具體的用戶來鏈接Postgres數據庫(還要結合後面的地址字段),
也可使用「all」來容許全部用戶鏈接數據庫。
字段四:DIDR-ADDRESS。
這可能會讓您不知所措,不知道它爲什麼物。
其實,它就是IP地址與掩碼的另外一種表示方法而已。
Postgres是經過這個字段來了解,容許那些IP或IP網段鏈接此服務器。
它的格式是: IP地址/掩碼。
這個掩碼和子網掩碼是一個道理,只不過是用一個小於等於32的正數來表示,
表示的正是子網掩碼中高几位爲1,
好比,255.255.255.0 就是「24」,說明高24位是1。
192.168.0.1/32 至關於 IP爲192.168.0.1,子網掩碼爲255.255.255.255的網段,
很顯然,這隻代表192.168.0.1IP本身。
若是您對IP地址與子網掩碼不太瞭解,請查看相關資料。
字段五:METHOD。
這是驗證方法。可選的有:
reject:拒絕這個IP的用戶訪問;
md5:密碼以md5做爲hash編碼;
password:密碼做爲明文傳輸(好恐怖!);
krb5:密碼以krb5做爲hash編碼。
下面舉一個例子,來講明如何進行設置: