GBase 8a基于主机IP的用户白名单(allowlist)功能

GBase 8a在创建用户以及授权时,可以指定该用户的主机IP,只有该IP才可以通过该用户进行连接和操作,从而实现了主机白名单功能。

注意本机是localhost,如果不授权的话,默认就必须指定IP来连接本机。 其中主机名%表示所有的IP,支持匹配。

通过create user创建用户

gbase> create user testdb2@10.0.2.101 identified by 'testdb2';
Query OK, 0 rows affected (Elapsed: 00:00:00.05)

支持模糊匹配

gbase> create user testdb@'10.0.2.%' identified by 'testdb';
Query OK, 0 rows affected (Elapsed: 00:00:00.03)

gbase> select trim(user),trim(host) from gbase.user;
+------------+------------+
| trim(user) | trim(host) |
+------------+------------+
| ab         | %          |
| gbase      | %          |
| root       | %          |
| testdb     | 10.0.2.%   |
+------------+------------+
4 rows in set (Elapsed: 00:00:00.00)

通过grant创建用户

gbase> select trim(user),trim(host) from gbase.user;
+------------+------------+
| trim(user) | trim(host) |
+------------+------------+
| ab         | %          |
| gbase      | %          |
| root       | %          |
+------------+------------+
3 rows in set (Elapsed: 00:00:00.00)

创建用户

gbase> grant all on testdb.* to testdb@10.0.2.115 identified by 'testdb';
Query OK, 0 rows affected (Elapsed: 00:00:00.04)

gbase> select trim(user),trim(host) from gbase.user;
+------------+------------+
| trim(user) | trim(host) |
+------------+------------+
| ab         | %          |
| gbase      | %          |
| root       | %          |
| testdb     | 10.0.2.115 |
+------------+------------+
4 rows in set (Elapsed: 00:00:00.00)

通过user的hosts功能

数据库用户有个hosts参数,可以通过create /alter user是指定。

gbase> alter user user1 hosts '10.0.2.18%';
Query OK, 0 rows affected (Elapsed: 00:00:00.02)
  • 默认hosts为空,不限制
  • 多个host用空格分割
  • host的IP列表可以用%和_做通配符,与like相同

连接测试

白名单内的IP连接

[gbase@gbase_rh7_015 ~]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:db:02:33 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.115/24 brd 10.0.2.255 scope global enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::8b26:63ff:c505:191c/64 scope link
       valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000
    link/ether 52:54:00:4a:d6:8a brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000
    link/ether 52:54:00:4a:d6:8a brd ff:ff:ff:ff:ff:ff
[gbase@gbase_rh7_015 ~]$ gccli -utestdb -ptestdb -h10.0.2.101

GBase client 9.5.2.43.5f8fd4b2. Copyright (c) 2004-2022, GBase.  All Rights Reserved.

gbase> ^CAborted
[gbase@gbase_rh7_015 ~]$

其它IP连接

报找不到对应用户的错误

[gbase@gbase_rh7_001 ~]$ gccli -utestdb -ptestdb
ERROR 1133 (42000): Can't find any matching row in the user table
[gbase@gbase_rh7_001 ~]$ gccli -utestdb -ptestdb -h10.0.2.101
ERROR 1133 (42000): Can't find any matching row in the user table
[gbase@gbase_rh7_001 ~]$

IP被限制

[gbase@gbase_rh7_015 ~]$ gccli -uuser1 -pp2resu
ERROR 1130 (HY000): Host 'localhost' is not allowed to connect to this GBase server
[gbase@gbase_rh7_015 ~]$ gccli -uuser1 -pp2resu -h10.0.2.115
ERROR 1130 (HY000): Host '10.0.2.115' is not allowed to connect to this GBase server
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值