我正在为我的公司创建库存应用程序。该应用程序具有通过RDS存储的库存信息。我正在使用MySQL,并且有pymysql可以连接。在整个开发过程中,我从创建数据库的笔记本电脑进行连接都没有问题。我想知道如何允许其他计算机与该应用程序连接。有没有办法避免将每个IP地址添加到安全组?我只希望那些下载了该应用程序的用户可以访问,而无需其他登录凭据。
当我在家用计算机上使用该应用程序时,尝试连接数据库时收到错误消息。
pymysql.connect(db=dbname, host=host, port=port, user=user, password=password)
答案 0 :(得分:0)
关于安全性的注释:
授予远程应用程序直接访问数据库的权限通常是一个非常糟糕的主意,尤其是不给每个用户/应用程序分配自己的密码。
您正在有效地向具有凭据的任何人打开数据库,并且将这些凭据包括在应用程序本身中。有人可以获得这些凭据,并且可能会对数据库的内容造成相当大的损害。
此外,您锁定数据库架构,并且将来无法更改。假设您有一个包含特定列的表,并且您的应用程序直接访问该表。将来,如果您修改表,则应该同时更新每个使用数据库的应用程序。如果其他人在自己的系统上运行该应用程序,那实际上是不可行的。
更好的方法是公开一个API ,并让应用程序使用该API来访问数据:
经验法则:只有一个应用程序服务器应直接访问给定的数据库。您可能有多台服务器运行同一软件,以提供高可用性并支持高流量,但不要让客户端应用程序直接访问数据库。这就是使“ 3层”应用程序比“ 2层”应用程序好得多的原因。 (Client - Server - Database
)