我正在建立一个网站,人们可以在其中建立小型私人社交网络。为了便于管理和可移植性,我希望每个网络都存储在不同的 MySQL 数据库中。
我知道 MySQL 服务器可以处理的数据库数量没有人为限制,并且在我的基本测试中没有可测量的性能影响。我想知道的是:如果我允许在没有我干预的情况下设置这些数据库,安全隐患是什么?
到目前为止我的想法:
对于一般用途,应用程序将以具有有限“SELECT”、“INSERT”、“UPDATE”、“DELETE”权限的用户身份连接到 MySQL。该用户将被授予读取/写入每个创建的数据库的权限。
创建新网络时,应用程序将以具有“CREATE”权限的特殊用户身份连接到 MySQL,因此它可以创建新数据库。
如果我确信此人是合法用户(电子邮件验证、验证码等),我只会允许创建一个新数据库。
如果创建了非法数据库,我会注意到并删除它们,并希望找出如何防止创建更多数据库。
有了这样的设置,有没有我没有想到的安全隐患?除了非法用户可能创建数据库之外,还有什么危险吗?