【问题标题】:Permissions assignment in phpphp中的权限分配
【发布时间】:2017-03-06 21:42:54
【问题描述】:

我正在尝试在 php 中创建角色和权限函数。我检查了一些教程

但不清楚这些权限是由 mysql 授予的权限还是在 php.ini 中临时设置的。

例如,如果我有 adminuserdeveloper 这样的角色,那么我应该在数据库中创建不同的用户,然后使用这些用户执行不同的操作,还是应该创建一个 root 用户和然后在php中控制访问。对我来说,数据库似乎应该通过拥有不同的用户来限制它。

【问题讨论】:

  • stackoverflow.com/questions/20939323/… 也许这会有所帮助。
  • 那是什么混乱.. @Jackerbil 那是 php 中的控制.. 如果我想在 mysql 数据库中使用具有不同权限的不同用户..
  • 嗯,你当然需要 MySQL 和 PHP。做我认为你想做的最简单的方法是在数据库的用户行中设置一个值,然后在 PHP 中检查该值。

标签: php mysql


【解决方案1】:

首先要清楚自己的角色和权限。在前端,这些是提供对某些页面和更改的访问的不同事物。 根据您的问题,让我告诉您管理员/用户/开发人员的角色可以由 MySQL 用户权限管理。 MySQL 用户权限限制用户对表的访问、创建表、删除和插入等。现在,如果您在数据库中创建具有自定义用户权限的不同用户,则必须为每个用户包含不同的连接凭据。
进一步在控制 PHP 页面时,通过 php 代码分配用户页面来限制用户访问。

【讨论】:

  • 那么你有什么建议......这是标准程序还是特殊情况?
  • 标准程序是考虑超级管理员:处理大部分具有所有访问权限的数据库进程,管理员:具有某些限制,用户:具有前端的查看和更新​​权限。现在这取决于您的安全级别。我的建议是除了 root 之外创建两个不同的用户,一个用于管理员,另一个用于用户。使用连接代码并根据需要决定安全性。
【解决方案2】:

如果您真的想要自定义访问管理模块。我建议您创建角色表来放置角色

table:role
Columns:
id (pk, auto-increment)
role_name (Varchar)

在用户表中保留“role_id”。

您无需为 user_role 创建单独的表,因为每次使用都会有一个角色。

但是,如果您计划拥有完整的页面级访问权限。您将需要该表,并且应该创建一个 UI,您可以在创建用户时将页面(访问权限)分配给用户。

如果您使用任何框架,请务必寻找可用的 API。 YII 有一个非常好的安全特性,定义了访问规则和过滤器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-09-28
    • 2023-03-17
    • 2015-06-25
    • 1970-01-01
    • 2019-12-25
    • 2017-08-10
    • 2018-02-20
    • 2016-11-28
    相关资源
    最近更新 更多