Archery
Archery copied to clipboard
soar连接online_dsn报密码错误,应该是密码加密存储的原因
重现步骤
使用archery的soar工具,会报错,见下:
预期外的结果
在保证soar_test_dsn配置正确的情况下,测试soar,发现报如下操作:
日志文本
查看日志,报online_dsn密码错误,如下:
版本
1.9.0
部署方式
Docker
是否还有其他可以辅助定位问题的信息?比如数据库版本等
1、查看archery源码,在archery\sql\sql_optimize.py中,看到online_dsn 的pwd是直接获取的sql_instance表的password字段:
def optimize_soar(request):
..........
# 目标实例的连接信息
online_dsn = '{user}:"{pwd}"@{host}:{port}/{db}'.format(
user=instance_info.user,
pwd=instance_info.password,
host=instance_info.host,
port=instance_info.port,
db=db_name,
)
2、查看MySQL数据库,password字段确实是加密存储的:
应该是把加密的密码赋值给online_dsn的pwd了,所以才造成的连接online_dsn总是报密码错误。
我不知道该怎么解密sql_instance里面的password密码,明文赋值给online_dsn。