【问题标题】:Laravel / Database - SecurityLaravel / 数据库 - 安全
【发布时间】:2021-06-10 10:42:26
【问题描述】:

目前,我正在考虑使用 laravel 时数据库端(在我的例子中是 postgres)的安全级别。

所以我遇到了这个问题:

F.e.我在 Laravel 中有两个用户角色:用户、管理员。

用户需要对数据库的选择、插入、更新权限。 管理员需要在数据库级别选择、插入、更新、删除和创建。

所以在这种情况下,我需要在 Laravel 中使用 2 个不同的连接:

  • 为用户提供一个连接
  • 一个管理员连接(具有扩展权限)

这是常用的吗?因为我没有找到很多关于这个的信息。

你如何解决 Laravel 中不同角色拥有特定数据库权限的问题? 你(只)依赖内部中间件吗?

提前谢谢你。

干杯

【问题讨论】:

  • 只是出于好奇,为什么管理员需要在应用程序级别创建新的数据库表?您不是指在部署新功能版本时进行数据库迁移,对吗?
  • 应用程序创建公式。对于每个新公式,都需要一个新表(因为每个公式都有自定义属性)。这可以使用 UI 上的“管理员角色”来完成。考虑了很长时间将所有公式结构和数据放入两个表中(使用 json),但最终每个公式的表更加结构化和更快。

标签: database laravel security roles


【解决方案1】:

在 Laravel 应用程序中提供基于角色的访问控制的最常见方法是通过使用 授权 功能。

除了提供内置的身份验证服务外,Laravel 还提供了一种简单的方法来授权用户对给定资源的操作。例如,即使用户通过了身份验证,他们也可能无权更新或删除某些 Eloquent 模型或由您的应用程序管理的数据库记录。 Laravel 的授权功能提供了一种简单、有条理的方式来管理这些类型的授权检查。

https://laravel.com/docs/8.x/authorization

【讨论】:

  • 谢谢erikgaal,我已经知道授权功能了。我认为在数据库而不是应用程序级别设置授权会更安全。
猜你喜欢
  • 1970-01-01
  • 2018-02-02
  • 2018-05-02
  • 1970-01-01
  • 1970-01-01
  • 2011-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多