GaussDB T访问控制详解

举报
社会主义的一块砖 发表于 2020/02/12 16:15:59 2020/02/12
【摘要】 对于DBA来说,安装完数据库之后首先要做的事应该是登录访问数据库,这是我们了解、使用一个全新数据库的第一步,所有的操作都是从这里开始。在访问控制方面,GaussDB T既借鉴了PostgreSQL数据库用户访问权限文件配置的方式,同时又保留了IP地址白名单和黑名单的访问控制方式。在此,我们详细对这两种方式进行学习和说明。一、 zsql本地连接数据库GaussDB T安装完成之后,数据库默认创...

对于DBA来说,安装完数据库之后首先要做的事应该是登录访问数据库,这是我们了解、使用一个全新数据库的第一步,所有的操作都是从这里开始。

在访问控制方面,GaussDB T既借鉴了PostgreSQL数据库用户访问权限文件配置的方式,同时又保留了IP地址白名单和黑名单的访问控制方式。在此,我们详细对这两种方式进行学习和说明。
一、 zsql本地连接数据库
GaussDB T安装完成之后,数据库默认创建了两个用户,超级管理员用户sys和公共
用户public,我们可以通过软件自带的zsql客户端工具登录数据库,sys用户密码默认为Changeme_123,基于安全考虑,建议第一次登录后立即修改sys用户密码:

[omm@sjkzyc1 ~]$ zsql sys/Changeme_123@127.0.0.1:1888

Warning: SSL connection to server without CA certificate is insecure. Continue anyway? (y/n):y
connected.
SQL> select username from dba_users;

username                                                        
----------------------------------------------------------------
SYS                                                             
PUBLIC                                                          

2 rows fetched.

SQL>

GaussDB T也支持本地免密方式登录,在初始化参数文件$DataDir/cfg/zengine.ini设置参数ENABLE_SYSDBA_LOGIN=TRUE,可以不需要密码直接登录。这一点与Oracle数据库的本地认证有所不同:

[omm@sjkzyc1 ~]$ zsql / as sysdba

Warning: SSL connection to server without CA certificate is insecure. Continue anyway? (y/n):y
connected.
SQL> select * from v$version;

VERSION                                                         
----------------------------------------------------------------
GaussDB_100_1.0.0.B019 Release 0b7bb43                          
ZENGINE                                                         
0b7bb43                                                         

3 rows fetched.

SQL>

二、远程连接数据库
GaussDB T默认不支持远程客户端访问,为此需要做一些配置,使其能够在远程客户
端进行访问。首先,编辑初始化参数文件$DataDir/cfg/zengine.ini,修改监听参数LSNR_ADDR为本地地址,监听端口默认1888,重启数据库生效:

LSNR_ADDR = 127.0.0.1,192.168.12.10
LSNR_PORT = 1888

配置完监听之后,我们还需要进一步完成访问控制授权,这样远程客户端才能成功连
接到数据库。GaussDB T提供了两种访问控制:用户白名单和IP地址访问控制。用户白名单配置文件zhba.conf位于$DataDir/cfg/目录下,文件内容默认如下:

[omm@sjkzyc1 cfg]$ vim zhba.conf 

……
# Put your actual configuration here
# ----------------------------------
#TYPE      #USER            ADDRESS  
# IPv4 local connections:

# IPv6 local connections:

host * 127.0.0.1,::1

在该文件中,我们可以添加允许远程访问的hba条目。如下,我们授权ip地址192.168.12.10的客户端以任意用户访问数据库:

host * 192.168.12.10,::1

在线加载配置文件,使其立即生效:

SQL> alter system reload hba config;
Succeed.

查询配置是否生效:

SQL> select * from sys.v$hba;
TYPE             USER_NAME           ADDRESS   
------------- --------------     ---------------------------
host             *                    127.0.0.1/32,::1/128 
host             *                    192.168.12.10/32,::1/128 

2 rows fetched.

● TYPE:表示连接的类型。
● USER:表示连接的用户名。
● ADDRESS: 表示连接的IP地址,支持IPV4、IPV6或子网网段。
除此之外,GaussDB T还支持配置IP白名单和IP黑名单,对远程客户端进行访问控制。相关参数说明如下:
● IP白名单:配置TCP_INVITED_NODES参数,限制只能从指定IP访问数据库。
● IP黑名单:配置TCP_EXCLUDED_NODES参数,限制不能从指定IP访问数据库。
● IP检测开关:配置TCP_VALID_NODE_CHECKING参数,开启或关闭IP检测功能。
下面,我们将数据库服务端地址及远程客户端地址192.168.1.3设置为允许访问的IP白名单,将远程客户端地址192.168.2.*设置为不允许访问的IP黑名单:

[omm@sjkzyc1 ~]$ zsql sys/Changeme_123@127.0.0.1:1888

Warning: SSL connection to server without CA certificate is insecure. Continue anyway? (y/n):y
connected.

SQL>

查询已配置的IP白名单和黑名单:

SQL> SELECT VALUE FROM V$PARAMETER WHERE NAME = 'TCP_INVITED_NODES'; 
VALUE                                                           
----------------------------------------------------------------
(127.0.0.1, 192.168.12.10)               

1 rows fetched.

SQL> SELECT VALUE FROM V$PARAMETER WHERE NAME = 'TCP_EXCLUDED_NODES';
VALUE                                                           
----------------------------------------------------------------
                                                                

1 rows fetched.

在线配置的IP白名单和黑名单,直接生效:

SQL> ALTER SYSTEM SET TCP_INVITED_NODES = '(127.0.0.1,192.168.12.10, 192.168.1.3)';
Succeed.

SQL> ALTER SYSTEM SET TCP_EXCLUDED_NODES = '(192.168.2.*)';
Succeed.

完成上述配置后,切记在线开启IP检测开关,使其生效:

::: hljs-center

居中

:::
SQL> ALTER SYSTEM SET TCP_VALID_NODE_CHECKING = true;
Succeed.

三、白名单和黑名单优先级
在配置IP访问控制及用户白名单之前,需要理解其优先级,这样才不至于配置错误,导致数据库不可连接。以下原则需要我们熟知并掌握:
● 当数据库中同时配置了IP白名单与黑名单时,黑名单优先级最高。
● 当数据库中同时配置了用户白名单与IP白名单时,两个配置均生效。
● 当数据库中同时配置了用户白名单与IP黑名单时,IP黑名单优先级最高。
● 当数据库中同时配置了用户白名单与IP白名单、黑名单时,IP黑名单优先级最高。
● 如果同时将某个地址配置到白名单与黑名单中,则该地址无法连接到数据库。
以下图形可以更好地说明三者之间的关系:

image.png


image.png

转自墨天轮


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。