瀚高數據庫相關設置
一、配置瀚高數據庫局域網訪問
需要修改兩個文件:postgresql.conf和pg_hba.conf
1)在postgresql.conf中找到下述配置,把listen_addresses前面的注釋去掉,值修改為*
# - Connection Settings -#listen_addresses = 'localhost' # what IP address(es) to listen on;# comma-separated list of addresses;# defaults to 'localhost'; use '*' for all# (change requires restart)
修改為
# - Connection Settings -
# listen_addresses前面的注釋去掉,把值設置為*
listen_addresses = '*' # what IP address(es) to listen on;# comma-separated list of addresses;# defaults to 'localhost'; use '*' for all# (change requires restart)
2)在pg_hba.conf最后位置找到下述配置,修改IPv4的相關配置
# TYPE DATABASE USER ADDRESS METHOD# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
host replication all 127.0.0.1/32 md5
host replication all ::1/128 md5
修改為
# TYPE DATABASE USER ADDRESS METHOD# IPv4 local connections:
# 注釋掉原來的
#host all all 127.0.0.1/32 md5
# 把ADDRESS的值修改為0.0.0.0/0,接受任何地址的訪問
host all all 0.0.0.0/0 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
host replication all 127.0.0.1/32 md5
host replication all ::1/128 md5
3)修改完配置文件,重啟數據庫生效
二、安全版瀚高數據庫,怎么使用第三方工具連接(Navicat)
安全版瀚高數據庫,密碼的默認加密方式時sm3,導致無法使用第三方工具連接。
1)最小化改造,新建一個用戶,密碼指定md5加密,新建一個數據庫,把owner指定為新建的用戶,例如
# 先通過命令行登錄,再進行下述操作
# 查看密碼加密方式
show password_encryption;
# 設置密碼加密方式
set password_encryption to md5;
# 創建用戶
create user test password 'Highgo@1234' valid until 'infinity';
# 創建數據庫,并指定歸屬用戶
create database dbtest owner=test encoding='utf8';
修改pg_hba.conf配置文件
# IPv4 local connections:
# 指定特定用戶(例如test)連接時,密碼的加密方式,特定用戶配置需要放在前面,規則從前往后匹配
host all test 0.0.0.0/0 md5
# 把ADDRESS的值修改為0.0.0.0/0,接受任何地址的訪問
host all all 0.0.0.0/0 sm3
經過上述配置后,就可以使用navicat,使用test用戶登錄了。
2)修改瀚高數據庫默認加密方式為md5(數據庫剛安裝、獨享數據庫、其他方無意見的情況)。
# 命令行登錄數據庫
# 設置密碼加密方式為md5
set password_encryption to md5;
# 在當前會話中修改管理員用戶密碼
alter user highgo password 'Hello@123' valid until 'infinity';
# 修改postgresql.conf
# 默認
#password_encryption = sm3 # md5, sm3 or scram-sha-256
# 密碼加密方式的值修改為md5
password_encryption = md5
# 修改pg_hba.conf
# 連接加密方法,sm3全部改為md5
# TYPE DATABASE USER ADDRESS METHOD# IPv4 local connections:
# host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5
# IPv6 local connections:
host all all ::1/128 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
host replication all 127.0.0.1/32 md5
host replication all ::1/128 md5
重啟數據庫,第三方工具嘗試連接
三、通過sql查看認證信息
# 登錄數據庫,通過sql查看認證信息,通過rolpassword可以看出密碼采用哪種加密方式。例如highgo的密碼采用的sm3加密方式,test用戶的密碼采用md5加密方式。
highgo=# select rolname,rolpassword from pg_authid;rolname | rolpassword
---------------------------+---------------------------------------------------------------------pg_monitor |pg_read_all_settings |pg_read_all_stats |pg_stat_scan_tables |pg_read_server_files |pg_write_server_files |pg_execute_server_program |pg_signal_backend |highgo | sm3ae987c45185be33b5cc98702bb7c18879ffe4da1e9e790ff0b683a33052420fdtest | md551d7479414a868138fccd56a558ccc06
(10 行記錄)
四、psql相關操作
聯接選項:-h, --host=主機名 數據庫服務器主機或socket目錄(默認:"本地接口")-p, --port=端口 數據庫服務器的端口(默認:"5866")-U, --username=用戶名 指定數據庫用戶名-d, --dbname=DBNAME 指定要連接的數據庫# 連接瀚高數據庫時,常用寫法。注意,如果pg_hba.conf中配置了多種訪問加密方法,連接字符串中盡量寫明-h ip地址, 不然可能會匹配不上(有待研究)。
psql -U highgo
psql -U highgo -h 127.0.0.1
psql -U highgo -p 5866 -h 127.0.0.1
psql -U highgo -p 5866 -h 127.0.0.1 -d highgo
五、其他注意事項
# 修改密碼會重置賬戶有效期,默認七天
alter user test password 'Word@123';
# 修改密碼時,需要加上valid until 'infinity',指定密碼無期限
alter user test password 'Word@123' valid until 'infinity';# 不修改密碼,設置密碼過期時間為無期限
alter user highgo valid until 'infinity';
小尾巴~~
只要有積累,就會有進步