【发布时间】:2019-10-05 18:02:51
【问题描述】:
这是我用来连接数据库的 pymysql 代码。我正在使用带有 Mysql 版本 5.7.22 的 AWS RDS Mysql 实例进行测试。我从https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html获得证书
pymysql.connect(secret_dict['host'], user=secret_dict['username'],
passwd=secret_dict['password'], port=port, db=dbname,
connect_timeout=5, ssl={'ca': './rds-combined-ca-bundle.pem'})
此代码适用于我的测试数据库,用户启用了 ssl,而用户 wo 启用了 ssl。 - (通过ALTER USER 'encrypted_user'@'%' REQUIRE SSL;)
我的问题是,我在任何 MySQL 版本数据库中看到的这种 pymysql 行为是真实的还是在任何地方都有记录?我所指的行为是,如果您将 ssl 选项添加到连接调用,它应该可以工作(成功连接),无论实际用户是否需要 SSL。我不想测试每个 Mysql 版本:)
通过查看 pymysql 代码,它似乎做的是 check 如果有任何与请求关联的 ssl 参数,将其添加到 ssl 映射,然后 creates 来自该 ssl 映射的 ctx_object并在使用数据库初始化 socket 时使用该 ctx_ 对象。
【问题讨论】:
标签: mysql ssl amazon-rds pymysql