postgresql pg_hba.conf 簡介及配置詳解
配置文件之pg_hba.conf介紹
該文件用于控制訪問安全性,管理客戶端對于PostgreSQL服務(wù)器的訪問權(quán)限,內(nèi)容包括:允許哪些用戶連接到哪個數(shù)據(jù)庫,允許哪些IP或者哪個網(wǎng)段的IP連接到本服務(wù)器,以及指定連接時使用的身份驗證模式。
pg_hba.conf 配置詳解
TYPE 參數(shù)設(shè)置
TYPE 表示主機(jī)類型,值可能為:
若為 local
表示是unix-domain的socket連接,
若為 host
是TCP/IP socket
若為 hostssl
是SSL加密的TCP/IP socket
DATABASE 參數(shù)設(shè)置
DATABASE 表示數(shù)據(jù)庫名稱,值可能為:
all
,sameuser
,samerole
,replication
,數(shù)據(jù)庫名稱
,或者多個
數(shù)據(jù)庫名稱用 逗號
,注意ALL不匹配 replication
USER 參數(shù)設(shè)置
USER 表示用戶名稱,值可以為:
all
,一個用戶名
,一組用戶名
,多個用戶時,可以用 ,
逗號隔開,
或者在用戶名稱前綴 +
;在USER和DATABASE字段,也可以寫一個單獨的
文件名稱用 @
前綴,該文件包含數(shù)據(jù)庫名稱或用戶名稱
ADDRESS 參數(shù)設(shè)置
該參數(shù)可以為 主機(jī)名稱
或者IP/32(IPV4)
或 IP/128(IPV6)
,主機(jī)
名稱以 .
開頭,samehost
或samenet
匹配任意Ip地址
METHOD 參數(shù)設(shè)置
該值可以為
"trust", "reject", "md5", "password", "scram-sha-256", "gss", "sspi", "ident", "peer", "pam", "ldap", "radius" or "cert"
注意 若為password
則發(fā)送的為明文密碼
加載配置文件、生效
修改該配置文件中的參數(shù),必須重啟 postgreSql
服務(wù),若要允許其它IP地址訪問該主機(jī)數(shù)據(jù)庫,則必須修改 postgresql.conf
中的參數(shù) listen_addresses
為 *
重啟:
pg_ctl reload 或者 執(zhí)行 SELECT pg_reload_conf()
配置實例參考
配置以下參數(shù)
# TYPE DATABASE USER ADDRESS METHOD host all all 10.10.56.17/32 md5
參數(shù)說明
host 參數(shù)表示安裝PostgreSQL的主機(jī) all 第一個all 表示該主機(jī)上的所有數(shù)據(jù)庫實例 all 第二個all 表示所有用戶 10.10.56.17/32 表示需要連接到主機(jī)的IP地址,32表示IPV4 md5 表示驗證方式
即上述表示允許IP地址為10.10.56.17的所有用戶可以通過MD5的密碼驗證方式連接主機(jī)上所有的數(shù)據(jù)庫
也可以指定具體的數(shù)據(jù)庫名稱和用戶
# TYPE DATABASE USER ADDRESS METHOD host test pgtest 10.10.56.17/32 md5 即表示允許地址為 10.10.56.17 的用戶 pgtest通過 MD5方式 加密的密碼方式連接主機(jī)上的 test 數(shù)據(jù)庫
也可以指定整個網(wǎng)段
# TYPE DATABASE USER ADDRESS METHOD host test pgtest 0.0.0.0/0 md5
即表示允許 任意iP 通過用戶名為 pgtest 和md5的 密碼 驗證方式連接主機(jī)上 test 的數(shù)據(jù)庫
不進(jìn)行密碼驗證
# TYPE DATABASE USER ADDRESS METHOD host test pgtest 0.0.0.0/0 trust
表示任意IP地址的用戶 pgtest 無需密碼驗證可直接連接訪問該主機(jī)的 test 數(shù)據(jù)庫
補(bǔ)充:postgresql配置文件pg_hba.conf配置、修改postgresql超級用戶的密碼
postgresql設(shè)置了用戶名和密碼,卻發(fā)現(xiàn)不輸入密碼、或者密碼輸錯都能登錄。于是在網(wǎng)上查,知道了原來是配置文件pg_hba.conf的問題。
1.修改pg_hba.conf文件,使得數(shù)據(jù)庫認(rèn)證方式為加密登錄
以下命令可以查找pg_hba.conf的路徑
[root@localhost ~]# find / - name pg_hba.conf
進(jìn)入到該配置文件中
[root@localhost ~]# vi /home/postgres/pgsql/data/pg_hba.conf
發(fā)現(xiàn)配置文件中內(nèi)容是全部注釋掉的,如下:
# local DATABASE USER METHOD [OPTIONS] # host DATABASE USER ADDRESS METHOD [OPTIONS] # hostssl DATABASE USER ADDRESS METHOD [OPTIONS] # hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]
以上相當(dāng)于postgreql用戶可以免密登錄,在末尾加上
host all all 0.0.0.0/0 md5
要求客戶端提供一個 MD5 加密的口令進(jìn)行認(rèn)證,即必須有密碼才能登錄
修改完pg_hba.conf文件后保存退出,輸入命令使配置生效
(1) 第一種生效方法
[root@localhost data]# service postgresql reload
以上命令執(zhí)行后會出現(xiàn)以下提示信息:
Reload PostgreSQL: OK
說明pg_hba.conf配置文件的 修改已生效。
(2) 第二種生效方法
備注:隔幾天后準(zhǔn)備更改另外一臺服務(wù)器的連接驗證方式,發(fā)現(xiàn)用以上方法對pg_hba.conf的修改生效時報錯。具體報錯如下:
[root@localhost data]# service postgresql reload postgresql: unrecognized service
在網(wǎng)上查資料后,進(jìn)行以下嘗試。
① 切換到postgres用戶
[root@localhost ~]# su - postgres -bash-4.1$ pwd /var/lib/pgsql -bash-4.1$ ls -bash-4.1$ 9.5 -bash-4.1$ cd * -bash-4.1$ ls backups data pgstartup.log
②使用pg_ctl命令對文件生效
-bash-4.1$ ./pg_ctl reload pg_ctl: no database directory specified and environment variable PGDATA unset Try "pg_ctl --help" for more information.
報錯如上,需要在reload后添加data文件夾所在的路徑
-bash-4.1$ ./pg_ctl reload -D /var/lib/pgsql/9.5/data server signaled
出現(xiàn)以上提示:server signaled時說明配置生效
修改postgresql默認(rèn)超級用戶postgres的密碼
首先以postgres用戶登錄postgresql數(shù)據(jù)庫
[root@localhost ~]# sudo -u postgres psql
接著修改postgresql的登錄密碼,結(jié)尾必須有分號";",否則修改無效,執(zhí)行命令后也不會出現(xiàn)ALTER ROLE。
postgres =# alter user postgres with password '****';
以上命令執(zhí)行后,會出現(xiàn)
ALTER ROLE
說明修改生效,接著退出postgresql
postgres =# \q
到此超級用戶postgres的密碼修改完成,可在pgAdmin客戶端進(jìn)行驗證。
指定用戶可訪問的數(shù)據(jù)庫pg_hba.conf
以上配置為所有IP及網(wǎng)關(guān)都允許訪問,使用MD5認(rèn)證。
postgres用戶可訪問所有數(shù)據(jù)庫
bret用戶僅允許訪問community、community2數(shù)據(jù)庫
weather用戶僅允許訪問weather數(shù)據(jù)庫
到此這篇關(guān)于postgresql pg_hba.conf 簡介及配置詳解的文章就介紹到這了,更多相關(guān)postgresql pg_hba.conf 配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PostgreSQL教程(一):數(shù)據(jù)表詳解
這篇文章主要介紹了PostgreSQL教程(一):數(shù)據(jù)表詳解表的定義、系統(tǒng)字段、表的修改、表的權(quán)限等4大部份內(nèi)容,內(nèi)容種包括表的創(chuàng)建、刪除、修改、字段的修改、刪除、主鍵和外鍵、約束添加修改刪除等,本文講解了,需要的朋友可以參考下2015-05-05postgresql 實現(xiàn)修改jsonb字段中的某一個值
這篇文章主要介紹了postgresql 實現(xiàn)修改jsonb字段中的某一個值操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01PostgreSQL數(shù)據(jù)庫管理系統(tǒng)快速入門
這篇文章主要介紹了PostgreSQL數(shù)據(jù)庫快速入門,PostgreSQL是一個功能強(qiáng)大的開源對象關(guān)系型數(shù)據(jù)庫系統(tǒng),他使用和擴(kuò)展了SQL語言,并結(jié)合了許多安全存儲和擴(kuò)展最復(fù)雜數(shù)據(jù)工作負(fù)載的功能,需要的朋友可以參考下2023-07-07PostgreSQL 實現(xiàn)給查詢列表增加序號操作
這篇文章主要介紹了PostgreSQL 實現(xiàn)給查詢列表增加序號操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01PostgreSQL?pg_filenode.map文件介紹
這篇文章主要介紹了PostgreSQL誤刪pg_filenode.map怎么辦,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-09-09postgreSQL 非count方法算記錄數(shù)操作
這篇文章主要介紹了postgreSQL 非count方法算記錄數(shù)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12