暂无图片
暂无图片
1
暂无图片
暂无图片
1
暂无图片

GaussDB 100访问控制详解

原创 宋俊卓 2019-12-30
4232

GaussDB 100访问控制详解

对于DBA来说,安装完数据库之后首先要做的事应该是登录访问数据库,这是我们了解、使用一个全新数据库的第一步,所有的操作都是从这里开始。
在访问控制方面,GaussDB 100既借鉴了PostgreSQL数据库用户访问权限文件配置的方式,同时又保留了IP地址白名单和黑名单的访问控制方式。在此,我们详细对这两种方式进行学习和说明。
一、 zsql本地连接数据库
GaussDB 100安装完成之后,数据库默认创建了两个用户,超级管理员用户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 100也支持本地免密方式登录,在初始化参数文件$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 100默认不支持远程客户端访问,为此需要做一些配置,使其能够在远程客户
端进行访问。首先,编辑初始化参数文件$DataDir/cfg/zengine.ini,修改监听参数LSNR_ADDR为本地地址,监听端口默认1888,重启数据库生效:

LSNR_ADDR = 127.0.0.1,192.168.12.10
LSNR_PORT = 1888

复制

配置完监听之后,我们还需要进一步完成访问控制授权,这样远程客户端才能成功连
接到数据库。GaussDB 100提供了两种访问控制:用户白名单和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 100还支持配置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

最后修改时间:2019-12-30 15:58:47
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
1人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

章芋文
暂无图片
5年前
评论
暂无图片 0
欢迎发表更多gaussdb的文章。
5年前
暂无图片 点赞
评论