在几个框架(symfony / Django)中,您有管理生成器,通常通过User表控制访问(将用户分配给指定的Group表)。
我很好奇,为什么不简单地使用MySQL的实际用户(已经选择/读/写访问权限)呢?
答案 0 :(得分:1)
我认为有一个原因,即许多ISP只为您的mysql数据库提供一个用户帐户(无需额外费用),因此,如果每个人都拥有相同的权限,这样的方法将无效。
这里的魔力是尽可能最低的公分母和易于部署,对服务器管理的要求最低。
答案 1 :(得分:1)
未列出的另一个好理由是MySQL用户名/密码以明文形式存储在配置文件中。您的代码中可能存在一个漏洞,允许用户读取文本文件,然后可以立即访问黑客而无需破解密码哈希。远程访问您的数据库是一个严重的危险因素,PCI-DSS禁止这样做。
另一个很好的理由是,为了添加新帐户或更改密码,您的Web应用程序将需要ROOT访问权限,这是您可以做的最糟糕的事情之一。在许多数据库(包括mysql)中,这使得黑客很容易将sql注入漏洞转变为完整的远程代码执行(如上传.php文件)。
答案 2 :(得分:0)
我想大多数人都有点怀疑,让他们的应用程序的MySQL用户能够为新的MySQL用户创建和授予权限,特别是在共享托管环境中。它并不难处理,它将所有内容保存在一个数据库表中,您可以拥有自己喜欢的任何权限。