瀚高数据库相关设置
一、配置瀚高数据库局域网访问
需要修改两个文件: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';
小尾巴~~
只要有积累,就会有进步