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

devtools/2024/10/9 2:12:51/

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

2、使用数据库 TRUSTED CONTEXT 机制

CREATE TRUSTED CONTEXT tcx1USER rootATTRIBUTES (ADDRESS '172.16.39.162')ATTRIBUTES (ADDRESS '172.16.39.163')ENABLEWITH 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 利用数据库现有机制实现

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 某些高版本中支持在参数中直接配置黑白名单


http://www.ppmy.cn/devtools/123142.html

相关文章

Java访问器方法和更改器方法

一.访问器方法 1.访问器方法的定义和用途 访问器方法&#xff0c;通常也称为getter方法&#xff0c;是一种在面向对象编程中用于从类的外部访问私有字段值的特殊方法。这些方法的设计目的是为了提供对类内部状态的受限访问&#xff0c;同时保持类的封装性。通过使用访问器方法&…

人力资源管理软件推荐,8款顶尖产品盘点

多款人力资源管理软件各具特色&#xff0c;适用于不同规模企业。ZohoPeople全面、安全、智能&#xff0c;Workday云端综合&#xff0c;OracleHCMCloud适合跨国企业&#xff0c;Moka、北森、薪人薪事、欢雀HR等各有优势&#xff0c;企业应根据需求选择并试用。 一、Zoho People …

大数据算法的思维

大数据算法的分类 一、分类算法 1. 决策树算法&#xff1a;通过构建树状结构&#xff0c;对数据进行分类。例如 ID3、C4.5 和 CART 算法&#xff0c;它们根据不同的特征选择标准进行分支划分&#xff0c;最终形成一颗能够对新数据进行分类的决策树。 2. 支持向量机&#xff08…

ThreadLocal原理解析及面试

基本使用 讲原理之前&#xff0c;我简单写个demo小程序说说怎么使用 public class TestThreadLocal {public static void main(String[] args) throws InterruptedException {ThreadLocal<String> tl new ThreadLocal();/**主线程设置了一个值*/tl.set("SSSSSs&…

Django学习笔记一:MVT的示例

Django的MVT&#xff08;Model-View-Template&#xff09;架构是一种将应用程序的不同部分分离的方法&#xff0c;旨在提高代码的可维护性和可扩展性。MVT将应用分解为三个主要部分&#xff1a;Model&#xff08;模型&#xff09;、View&#xff08;视图&#xff09;和Template…

微服务实战——ElasticSearch(保存)

商品上架——ElasticSearch&#xff08;保存&#xff09; 0.商城架构图 1.商品Mapping 分析&#xff1a;商品上架在 es 中是存 sku 还是 spu &#xff1f; 检索的时候输入名字&#xff0c;是需要按照 sku 的 title 进行全文检索的检索使用商品规格&#xff0c;规格是 spu 的…

论文速读:基于渐进式转移的无监督域自适应舰船检测

这篇文章的标题是《Unsupervised Domain Adaptation Based on Progressive Transfer for Ship Detection: From Optical to SAR Images》基于渐进式转移的无监督域自适应舰船检测:从光学图像到SAR图像&#xff0c;作者是Yu Shi等人。文章发表在IEEE Transactions on Geoscience…

1000题-计算机网络系统概述

术语定义与其他术语的关系SDU&#xff08;服务数据单元&#xff09;相邻层间交换的数据单元&#xff0c;是服务原语的表现形式。在OSI模型中&#xff0c;SDU是某一层待传送和处理的数据单元&#xff0c;即该层接口数据的总和。 - SDU是某一层的数据集&#xff0c;准备传递给下一…