我一直在对Laravel 4框架进行大量研究,并希望了解人们如何为生产应用配置数据库用户权限。
在我阅读过的所有文档中,所有显示都使用root权限。生产应用程序是否使用mySQL root登录?如果没有,那么该用户可以获得哪些特权?
我尝试创建一个数据库用户' dev-app'具有应用程序使用的数据库的架构权限,允许所有对象和DDL权限。不幸的是,我为用户获得了拒绝访问权限......"运行' php artisan migrate'。
时出现错误消息在我简单地向所有用户授予并继续编码之前,我只是想知道如何在数据库中正确设置这些用户。
由于
答案 0 :(得分:0)
我重新创建了用户并添加了Laravel数据库可用的所有权限,并且所有权限似乎都正常工作。感谢所有的提示和评论。
答案 1 :(得分:0)
我通常在Laravel配置中有两个用户帐户和相应的两个数据库连接。
第一个(默认)帐户具有最低权限:
第二个帐户用于迁移,配置如下:
并在迁移过程中使用如下:
php artisan migrate --database=migrateconn
因此,出于安全原因,您的Web应用程序用户将具有最小权限,并且仅对于您应该使用提升用户帐户的部署任务。
答案 2 :(得分:0)
这是适合于修改并粘贴到MySQL 5命令提示符中的命令行。
GRANT CREATE TEMPORARY TABLES, DELETE, EXECUTE, INSERT, LOCK TABLES, SELECT, UPDATE ON databasename.* TO 'username'@'localhost' IDENTIFIED BY 'password'
对于迁移用户,一个稍大的站点:
GRANT ALTER, CREATE, CREATE TEMPORARY TABLES, DELETE, DROP, INDEX, INSERT, LOCK TABLES, REFERENCES, SELECT, UPDATE ON databasename.*
TO 'username'@'localhost' IDENTIFIED BY 'password'
修改位置:
“数据库名称”是您的数据库的名称 “用户名”是您的MySQL帐户的用户名 'localhost'是安装Laravel的服务器主机 “密码”是该用户名所需的密码
在MySQL 8上,这必须分为两个步骤,一个步骤用于创建用户,另一个步骤用于授予权限。
通常,最好限制所允许的权限,因此,此列表比以前的一些答案要小。如果/当我发现需要更多功能的Laravel代码时,我打算对此进行更新。