gbase8s数据库实现黑白名单的几种方案

1、借用操作系统的黑白名单

2、使用数据库 TRUSTED CONTEXT 机制

sql 复制代码
CREATE TRUSTED CONTEXT tcx1
  USER root
  ATTRIBUTES (ADDRESS '172.16.39.162')
  ATTRIBUTES (ADDRESS '172.16.39.163')
  ENABLE
  WITH USE FOR wangyx WITHOUT AUTHENTICATION;

如上创建 可信任上下文对象 tcx1

在 jdbc URL中添加TRUSTED_CONTEXT=TRUE属性

实际效果为 162 与163 机器的 root 用户可以连接数据库,其他ip 或者非root用户不能连接,从 root切换成 wangyx用户时不需要输入密码

复制代码
SET SESSION AUTHORIZATION TO 'wangyx';

更多语法以及配置细节可参考gbase8s语法手册

3 利用数据库现有机制实现

sql 复制代码
create table sysmaster:gbasedbt.hostlist
(id int,ipaddr varchar(15));

insert into hostlist values(0,'node23');
insert into hostlist values(1,'172.16.39.162');

drop procedure if exists checkip;
create procedure checkip()
define a int;
define v_sessionid int;
define r_msg varchar(10);
define v_ipaddr varchar(100);
let v_sessionid=dbinfo('sessionid');
select hostname into v_ipaddr from sysmaster:sysscblst where sid=v_sessionid;
select count(1) into a from sysmaster:hostlist where ipaddr=v_ipaddr;
if a =0 THEN
execute function sysadmin:task('onmode','z',v_sessionid) into r_msg;
RAISE EXCEPTION -746,0,'connect refuse';
end if;
end procedure;

dbaccess tstnw <<!
create procedure public.sysdbopen()
call sysmaster:checkip();
end procedure;
!

1)在部分环境中由于DNS反向解析策略很有可能将实际IP解析成bogon,需要额外关注下

2)若 sysdbopen 未知异常会导致数据库无法连接,最简单的处理方案为

dbaccess sysmaster -<<!

update <dbname>:sysprocedures set procname='aaa' where procname like '%sysdbopen%';

!

重启数据库

4 某些高版本中支持在参数中直接配置黑白名单

相关推荐
m0_613856292 小时前
mysql如何利用事务隔离级别解决特定业务冲突_mysql隔离方案选型
jvm·数据库·python
Adios7942 小时前
VPR:Pitts50K和Norland数据集下载
数据库
东风破1372 小时前
DM用户权限、表、约束等对象的基本操作,SQL日志的开启介绍
数据库·sql·dm达梦数据库
收获不止数据库2 小时前
达梦9发布会归来:AI 时代,我们需要一款什么样的数据库?
数据库·人工智能·ai·语言模型·数据分析
小宇的天下3 小时前
Virtuoso GUI 界面中的关键模块定义
数据库
bqq198610263 小时前
MySQL 5.7 与 MySQL 8.0 的主要区别
数据库·mysql
Elastic 中国社区官方博客3 小时前
Elastic-caveman : 在不损失 Elastic 最佳效果的情况下,将 AI 响应 tokens 减少64%
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·全文检索
互联网推荐官4 小时前
上海软件定制开发全流程拆解:需求分析、技术选型与交付管理的工程实践
大数据·数据库·需求分析
专注API从业者4 小时前
Open Claw 京东商品监控选品实战:一键抓取、实时监控、高效选品
java·服务器·数据库
大迪deblog4 小时前
系统架构师-数据库-数据库设计
数据库·oracle·系统架构