OpenGauss在安装好以后,我们可以直接在服务器上使用gsql 进行连接:
Linux 7.6 平台 openGauss 3.1.1 单机版 安装手册
https://www.cndba.cn/dave/article/116448
但如果我们想通过工具,比如DBeaver 或者从其他服务器进行远程连接的时候,就需要进行额外的配置,否则无法进行连接。 具体配置如下。
1 检查监听地址:listen_addresses
这里配置listen_addresses参数,listen_addresses即远程客户端连接使用的数据库主节点ip或者主机名。
查看数据库主节点目前的listen_addresses配置。
[omm@www.cndba.cn dn]$ gs_guc check -I all -c "listen_addresses"
The gs_guc run with the following arguments: [gs_guc -I all -c listen_addresses check ].
expected guc information: hf-172-31-101-18: listen_addresses=NULL: [/data/openGauss/install/data/dn/postgresql.conf]
gs_guc check: hf-172-31-101-18: listen_addresses='*': [/data/openGauss/install/data/dn/postgresql.conf]
Total GUC values: 1. Failed GUC values: 0.
The value of parameter listen_addresses is same on all instances.
listen_addresses='*'
[omm@www.cndba.cn dn]$
我们这里是*,表示所有主机,不用修改,当然也可以严格限制为某些主机,命令如下:
gs_guc set -I all -c “listen_addresses=’localhost,192.168.0.100,10.11.12.13’”
2 修改配置文件
如果主机需要远程连接数据库,必须在数据库系统的配置文件(pg_hba.conf)中增加此主机的信息,并且进行客户端接入认证。hba(host-based authentication)表示是基于主机的认证。
配置远程连接时需要再pg_hba.conf文件中添加数据库主节点ip和客户端ip。
添加数据库主节点ip到pg_hba.conf(默认有,可不执行):
gs_guc reload [-Z datanode] -N all -I all -h “host all username 10.11.12.13/32 trust”
添加客户端ip到pg_hba.conf:
gs_guc reload -N all -I all -h “host all cndba 172.31.101.17/32 sha256”
创建测试用户:cndba
[omm@www.cndba.cn ~]$ gsql -d postgres -p 15400
Password:
gsql ((openGauss 3.0.3 build 46134f73) compiled at 2023-01-10 22:42:07 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.
openGauss=# /l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+-------+-----------+---------+-------+-------------------
postgres | omm | SQL_ASCII | C | C |
template0 | omm | SQL_ASCII | C | C | =c/omm +
| | | | | omm=CTc/omm
template1 | omm | SQL_ASCII | C | C | =c/omm +
| | | | | omm=CTc/omm
ustc | cndba | SQL_ASCII | C | C |
(4 rows)
openGauss=#
openGauss=# CREATE USER cndba PASSWORD 'cndba@123456';
openGauss=# /c ustc cndba
Password for user cndba:
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "ustc" as user "cndba".
ustc=>
查看cat pg_hba.conf 文件:
[omm@www.cndba.cn dn]$ pwd
/data/openGauss/install/data/dn
[omm@www.cndba.cn dn]$ cat pg_hba.conf
local all all sha256
host all all 127.0.0.1/32 sha256
host all all 0.0.0.0/0 md5
host replication all 0.0.0.0/0 md5
[omm@www.cndba.cn dn]$
配置允许IP地址为172.31.101.17的客户端访问本机:
[omm@www.cndba.cn dn]$ gs_guc reload -N all -I all -h "host all cndba 172.31.101.17/32 sha256"
The gs_guc run with the following arguments: [gs_guc -N all -I all -h host all cndba 172.31.101.17/32 sha256 reload ].
Begin to perform the total nodes: 1.
Popen count is 1, Popen success count is 1, Popen failure count is 0.
Begin to perform gs_guc for datanodes.
Command count is 1, Command success count is 1, Command failure count is 0.
Total instances: 1. Failed instances: 0.
ALL: Success to perform gs_guc!
说明
-N all表示openGauss的所有主机。
-I all表示主机的所有实例。
-h表示指定需要在“pg_hba.conf”增加的语句。
all表示允许客户端连接到任意的数据库。
cndba表示连接数据库的用户。
172.31.101.17/32表示只允许IP地址为10.10.0.30的主机连接。此处的IP地址不能为openGauss内的IP,在使用过程中,请根据用户的网络进行配置修改。32表示子网掩码为1的位数,即255.255.255.255。
sha256表示连接时cndba用户的密码使用sha256算法加密。
[omm@www.cndba.cn dn]$ cat pg_hba.conf
local all all sha256
host all cndba 172.31.101.17/32 sha256
host all all 127.0.0.1/32 sha256
host all all 0.0.0.0/0 md5
host replication all 0.0.0.0/0 md5
[omm@www.cndba.cn dn]$
注意:
- 认证时系统是为每个连接请求顺序检查“pg_hba.conf”里的记录的,这些记录的顺序非常关键。
- pg_hba.conf的配置通过gs_guc reload命令修改后,在新创建会话时会生效。如果通过gs_guc set命令设置或直接编辑pg_hba.conf文件修改配置参数,需要重启数据库生效或重新执行gs_guc reload命令生效。
如果需要重启,参考之前的博客:
openGauss 数据库的启动和关闭
https://www.cndba.cn/dave/article/116477
3 验证
远程连接无法使用初始化的omm用户:
[omm@www.cndba.cn ~]$ gsql -d postgres -p 15400 -h 172.31.101.18
gsql: FATAL: Forbid remote connection with initial user.
FATAL: Forbid remote connection with initial user.
使用业务用户cndba:
[omm@www.cndba.cn ~]$ gsql -d postgres -p 15400 -h 172.31.101.18 -U cndba
Password for user cndba:
gsql ((openGauss 3.1.0 build 4e931f9a) compiled at 2022-09-29 14:19:24 commit 0 last mr )
SSL connection (cipher: ECDHE-RSA-AES128-GCM-SHA256, bits: 128)
Type "help" for help.
openGauss=> /l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+-------+-----------+---------+-------+-------------------
postgres | | SQL_ASCII | C | C |
template0 | | SQL_ASCII | C | C | =c/omm +
| | | | | omm=CTc/omm
template1 | | SQL_ASCII | C | C | =c/omm +
| | | | | omm=CTc/omm
ustc | cndba | SQL_ASCII | C | C |
(4 rows)
openGauss=>
4 小结
按官方手册,有3个配置的地方,如果不修改默认参数,实际只需要将远程连接的用户和IP地址添加到pg_hba.conf 文件即可:
gs_guc reload -N all -I all -h “host all cndba 172.31.101.17/32 sha256”
版权声明:本文为博主原创文章,未经博主允许不得转载。