配置管理数据库如何统一管理?
发布时间:2022-10-12 18:15:53 来源:本站编辑:GD工单系统
知识导读
为了能规范性,工程应用的配置管数据库理信息将统一由布署运维管理组来管理,而不再由工程应用管理方法维护保养。这儿,以数据库的配置信息为例子,介绍一下架构模式。因为配备信息统一管理,因此施工中再也没有了数据库的有关信息,也是通过HTTP请求到配置中心获得。与此同时,为了安全起见期内,数据库登陆密码的储存不会再以密文来储存,而是用RSA加密之后进行储存,与此同时,产品密钥储存在系统变量中。因此,针对布署侧,必须干的事为:构建Nginx服务项目,针对不同工程项目,给予不一样的路线来管理配备信息。针对工程应用,应该做的2件事为:HTTP请求获得数据库的配置信息
载入系统变量的密匙,将数据库登陆密码开展解密。Java工程的实现方案非常简单,根据数据库连接池Druid就可以实现,数据库的配置改成如下所示就可以:
而Python工程就需要进行工程应用的两件事情,即HTTP请求获得环境变量、对配置管理数据库登陆密码解密。为了能和Java的加解密方法同样,一样选用RSA加密。这大概是全地球最主要的加密方法了啊。一般而言,毕竟是加密,肯定是不希望对方了解我的消息,因为只有我才能解密,因此可得到公钥承担加密,私钥承担解密。但因为Druid由于IBMJDK问题反转了公钥私钥加密,但是为了和Java工程保持一致,选用私钥加密,公钥解密。(留意,公钥和私钥是相对应的,这类似电子签名的验证,毕竟是签字,肯定是不希望有人假冒我发信息,仅有我才能公布这一签字,因此可得到私钥承担签字,公钥承担认证。)接着就是Python的代码实现了。Python中的包Pycrypto只是适用公钥加密,私钥解密,所以无法使用这个包。可是可以用M2Crypto去完成私钥加密公钥解密。此包安装很困难,提议免费下载exe文件开展组装。关键在于根据HTTP请求获得数据库配备信息:
向服务器发送要求,读取数据;
向服务器发送Request要求;
接受网络服务器回应内容;
载入网络服务器回应内容(查看数据库信息出现异常)
随后必须分析报文格式并解密了。数据库信息的存储格式如下所示:
分析报文格式的一个过程如下所示:
格式化硬盘数据库的信息储存在词典中
在其中,pub_decrypt为解密的一个过程,先从系统变量中获取公钥,将公钥开展格式化硬盘,随后应用保密和公钥开展解密,完成如下所示:
用公钥登陆密码对暗文开展解密;
从系统变量中获得公钥;
转换成PEM文件格式;
其中parse_to_pem将公钥格式化硬盘成pem文件的方式,
得到配置管理数据库的IP,端口号,账户密码等信息后,联接数据库就行了。
上一篇:配置管理数据库是由哪些组成