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

时间:2014-12-02 00:57:54

标签: php mysql database laravel-4

我一直在对Laravel 4框架进行大量研究,并希望了解人们如何为生产应用配置数据库用户权限。

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

我尝试创建一个数据库用户' dev-app'具有应用程序使用的数据库的架构权限,允许所有对象和DDL权限。不幸的是,我为用户获得了拒绝访问权限......"运行' php artisan migrate'。

时出现错误消息

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

由于

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

enter image description here

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

enter image description here

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

  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代码时,我打算对此进行更新。