如何将Android应用与Amazon AWS RDS的线上MySQL数据库连接?
方案可行性结论
你提出的「先搭建Web服务做中间层转发请求」的方案是完全可行的,同时这也是对接客户端与云数据库的行业标准实践,完全适配Amazon RDS的使用规范。
核心逻辑说明
RDS MySQL作为纯数据库服务,本身仅支持MySQL原生TCP协议通信,不具备直接处理HTTP请求的能力,所以必须通过中间Web服务做协议转换,再和RDS交互,你的思路是完全正确的。
落地注意事项
- 不要给RDS开启公网访问权限,将Web服务部署在和RDS相同的VPC内,仅配置安全组允许Web服务的内网IP访问RDS的3306端口,最大化数据库安全
- Web服务仅封装你业务需要的特定操作接口,比如用户数据查询、业务记录上传等,绝对不要对外暴露通用SQL执行接口,所有入参必须做校验,避免SQL注入风险
- 所有请求鉴权逻辑放在Web服务层实现,Android端仅和Web服务走HTTPS通信,无需感知底层RDS的任何信息,也不用存储任何数据库访问凭证
绝对不要采用的方案
不要尝试在Android端直接用JDBC等驱动直连RDS,哪怕你开了公网访问也不行:一是移动端的MySQL驱动兼容性差、性能极低,网络波动时极易出错;二是数据库账号密码会打包到APK中,很容易被反编译提取,导致数据库被拖库、篡改。
内容的提问来源于stack exchange,提问作者Emre Turan
相关产品推荐
相关产品推荐

