特权用户如何在MySQL上工作?使用社交网站的所有用户是否都具有唯一的用户特权才能连接到数据库,或者所有用户都使用相同的特权,例如:
$dsn = 'mysql:host=localhost;dbname=social_site';
$username = 'members';
$password = 'pa55word';
最佳答案
不,通常来说,将有一个(或少数)MySQL用户,而PHP脚本(或其他服务器端代码)将使用该用户来完成所有数据的获取和设置。在某些情况下,创建具有不同权限级别的少数MySQL用户会很有帮助,因为这增加了安全性(因此,一般的select
查询是使用仅具有select
特权的用户运行的,而inserts
和updates
由具有这些特权的单独用户处理)。如果您允许远程计算机直接访问MySQL数据库(针对合作伙伴的网站或应用程序),则通常为该连接创建一个特定的MySQL用户,且其权限仅限于他们所需要的权限(没有drop
或modify
权限,对于实例),并且仅限于其IP地址(您可以将MySQL用户限制为仅来自单个地址的连接)。
最重要的是,您通常应该只创建几个用户,并且您的网站/应用程序将仅使用这个小的用户池来进行所有查询。此外,优良作法是使用具有最少权限来完成任务的用户访问数据库(原因是……不要为每个可能的操作创建单独的用户……通常1-3个用户应涵盖所有您想要的权限级别)。如果创建了大量用户,您将(a)降低MySQL的速度,因为它必须访问更大的权限表; (b)如果应用程序改变了方向,则将很难管理权限; (c)调试权限问题更麻烦(您的PHP脚本在执行操作和报告是否存在权限问题方面更具灵活性)。