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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel 4 - 用于生产的MySQL用户配置相关的知识,希望对你有一定的参考价值。

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

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

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

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

谢谢

答案

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

另一答案

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

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

enter image description here

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

enter image description here

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

  php artisan migrate --database=migrateconn

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

另一答案

这是一个适合修改和粘贴到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代码时,我计划更新此内容。

以上是关于Laravel 4 - 用于生产的MySQL用户配置的主要内容,如果未能解决你的问题,请参考以下文章

laravel 生产准备好了吗? [关闭]

rabbitMQ应用,laravel生产广播消息,springboot消费消息

Laravel 5 种用于开发和生产的不同日志级别

Apache,PHP,MySQL,PDO,权限被拒绝,laravel

Laravel 4 - 如何在视图中访问 MySQL 数据库

laravel 已用于生产环境的表添加字段的方法