作者回复: 1. 被攻击。 2. 数据被窃取。 如果网络传输没加密,客户端和数据库之间的TCP流量如果被抓取了,可以解析出客户端执行的SQL语句、服务端返回的数据。
作者回复: 这两点确实是数据库放公网最大的风险。 不过对于风险一,我个人更倾向用网络访问策略、防火墙等方式来限制。一是如果用mysql内部机制来限制登录主机,如果白名单长了,需要创建和维护很多个用户。二是端口如果在外部能访问,黑客可能会使用你意想不到的各种方式来攻击数据库。 风险二用SSL 加密传输来解决。还可以限制用户必须提供满足条件的证书才能访问数据库。