在 schema.xml 配置文件中,我们在配置 物理库 信息时,会对 url、user、password 等进行配置,但是这里用到的 password 会使用到明文密码。在线上环境中,如果我们使用这种明文密码,显然是不安全的。
针对这种问题,MyCat 为我们提供了解决方案。我们进入 mycat/lib 目录下,此时我们会看到一个 Mycat-server-xxxxxx 开头的jar 包。
通过使用如下命令,便能够完成对密码的加密操作。
命令:java -cp Mycat-server-1.6.7.3-release.jar io.mycat.util.DecryptUtil 1:hostM1:root:123456
这里的 1 指什么呢?hostM1又是指什么呢?接下来详细简解
其中 0:user:password是加密字符串,有两种格式:
1.dataHost加密格式:
1:hostM1:root:123456
注释:
1代表是dataHost加密
hostM1是<writeHost host="hostM1"
root是user="root"
123456是 password=明文密码(123456)
对应 writeHost 配置:
<writeHost host="hostM1" url="localhost:3306" user="root"
password="BpkNIjF7LfzS1C76HT7B1bJgmGIDtPihqIvHBlC92L1IFqsMfoJEMk1EkxSzjaJstdAp5w==" usingDecrypt="1">
<!-- can have multi read hosts -->
</writeHost>0.mycat用户登录密码加密格式
0:root:123456
注释:
0代表mycat用户登录密码加密
对应 user 配置:
<user name="root" defaultAccount="true">
<property name="usingDecrypt">1</property>
<property name="password">d6D+pOmkuUoY09p4/aivwMsScLa7zfjIwAxvkEhr3v7en06mEXoX==</property>
<property name="schemas">TESTDB</property>
</user>注意!!!
使用密文,需要添加 usingDecrypt="1" ,改属性默认值为0
<writeHost host="hostM1" url="192.168.204.201:3306" user="root" password="明文密码">
<!-- can have multi read hosts -->
<readHost host="hostS1" url="192.168.204.202:3306" user="root" password="密文密码" usingDecrypt="1"/>
</writeHost>
加密后的密码,如下图所示
接下来,你便可以使用 加密后的密码 + usingDecrypt 属性 来使用密文密码了。
MyCat 明文密码安全性问题,介绍到此为止
如果本文对你有所帮助,那就给我点个赞呗 ^_^
End