我正在将我的 mysql 数据库移出现场,并且大多数情况下,在同一网络上的单独服务器上运行的 Web 应用程序(供私人使用)都需要访问它。因此,从我所读到的来看,mysql 数据库最好只能通过网络访问,而不暴露给外界。但是,我目前正在使用我编写的 excel 插件访问数据库(以只读方式),我想继续这样做。最好的方法是什么?
我喜欢 MySQL 代理的想法,它位于本地服务器上,通过 ssh 隧道安全地访问到 webapp 服务器的数据库,但是“MySQL 代理”仍然处于 alpha 阶段,因此它似乎并不理想。
我可以让每个客户端手动打开一个 SSH 隧道,但这对 Excel 插件的其他用户来说太不方便了。
我可以设置 VPN,但这似乎有点小题大做……也许不是?
有任何想法吗?
答案1
您需要查看三件事:
- 在 MySQL 中确保您正确设置了 GRANT,以便每个用户都有正确的访问权限、受密码保护,并且只能从有限的 IP 地址访问:GRANT SELECT、INSERT、UPDATE、DELETE ON database。* TO'user1'@'ip.add.re.ss' IDENTIFIED BY'PASSWORD';
- 设置防火墙,将对端口 3306 的访问限制为您信任的 IP 地址。
- 查看 SSL 加密会话:http://dev.mysql.com/doc/refman/5.0/en/secure-connections.html您可以设置 GRANT 来要求 SSL 连接。