Laravel 4 - 用于生产的MySQL用户配置

问题描述 投票:3回答:3

我一直在对Laravel 4框架进行大量研究,并想知道人们如何配置生产应用程序的数据库用户权限。

在我阅读的所有文档中,所有显示都使用root权限。生产应用程序是否使用mySQL root登录?如果没有,那么该用户有哪些特权?

我尝试创建一个数据库用户'dev-app',它对应用程序使用的数据库具有模式特权,允许所有对象和DDL权限。不幸的是,当我运行'php artisan migrate'时,我收到了“Access denied for user ...”错误消息。

在我简单地向所有用户授予并继续编码之前,我只想知道如何在数据库中正确设置这些用户。

谢谢

php mysql database laravel-4
3个回答
0
投票

我重新创建了用户并添加了Laravel数据库可用的所有权限,并且所有权限似乎都可以正常工作。感谢所有提示和评论。


0
投票

我通常在Laravel配置中有两个用户帐户和相应的两个数据库连接。

第一个(默认)帐户具有最小权限:

enter image description here

第二个帐户用于迁移,配置如下:

enter image description here

并在迁移过程中使用如下:

  php artisan migrate --database=migrateconn

因此,出于安全原因,您的Web应用程序用户将具有最小权限,并且仅对于应使用提升用户帐户的部署任务。


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'

修改位置:

'databasename'是数据库的名称'username'是您的MySQL帐户的用户名'localhost'是安装Laravel的服务器主机'password'是该用户名所需的密码

在MySQL 8上,这必须分为两个步骤,一个用于创建用户,另一个用于授予权限。

一般来说,最好限制允许的权限,因此这是一个比以前的答案更小的列表。如果/当我发现需要更多功能的Laravel代码时,我计划更新此内容。

© www.soinside.com 2019 - 2024. All rights reserved.