Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于角色的访问控制MySql实现_Mysql_Database_Laravel_Rbac_Role Based Access Control - Fatal编程技术网

基于角色的访问控制MySql实现

基于角色的访问控制MySql实现,mysql,database,laravel,rbac,role-based-access-control,Mysql,Database,Laravel,Rbac,Role Based Access Control,我将与Laravel一起开发一个管理web应用程序 我需要我的用户具有不同权限的不同角色 详细信息:一些用户可以添加客户,一些用户可以编写与客户相关的文章,一些其他用户可以阅读该文章,一些其他用户可以阅读该文章 所以我决定使用RBAC方法来获得一定的灵活性。 我将使用这个DB模式(只是一个示例模式,但代表我的应用程序的需求): 我的回答是:既然用户和纸张、客户、附件等有直接关系,那么RBAC规则是如何表达的?当用户请求操作或资源时,我必须在前端检查用户的权限?或者,即使是在后端级别,也有表达这

我将与Laravel一起开发一个管理web应用程序

我需要我的用户具有不同权限的不同角色

详细信息:一些用户可以添加客户,一些用户可以编写与客户相关的文章,一些其他用户可以阅读该文章,一些其他用户可以阅读该文章

所以我决定使用RBAC方法来获得一定的灵活性。 我将使用这个DB模式(只是一个示例模式,但代表我的应用程序的需求):

我的回答是:既然用户和纸张、客户、附件等有直接关系,那么RBAC规则是如何表达的?当用户请求操作或资源时,我必须在前端检查用户的权限?或者,即使是在后端级别,也有表达这些规则的方法?也许使用一些补助金选项

希望斯比能帮上忙。
谢谢大家!

我建议您使用已经提供给您的RBAC软件包之一,这里有一些,但值得一提的是:


您可以定义角色,例如
用户
客户
,权限,例如
可以写论文
可以阅读论文
,并根据您的使用案例将其分配给角色或单个用户。

如果要将用户添加到数据库中,以及您可以为每个用户授予的权限,足够了。但是我相信你应该在很长的一段时间内做好这个客户端站点,以保持它在MySQL端的完整性。。。有了权限表,检查该权限表并使用检查选项查看的函数也可以在offcource….->下工作@RaymondNijland我认为行级安全不是我需要的。让我们举个例子:-我有三个组:“管理员”、“助理”和“工人”-一个管理员可以添加一个新客户,并将他想要的一切都写在纸上。-一个“助手”只能写论文的第一部分一个工人只能写论文第二部分。不管怎样,任何管理员和助手都可以看到纸上的所有内容,而工人只能看到任何文件的第二部分。但任何“工人”都可以看到论文第2部分,而不仅仅是写这篇文章的工人。因此,策略应用于表,而不是单个行。“我认为行级别的安全性不是我所需要的。”是的,您检查了最后一个链接,它看起来更像一个基于角色的访问控制系统,带有位掩码。。无论如何,如果您修改SQL代码,您可以使用该方法作为更合适的基于角色的系统(您的组更基于记录,而不是掩码),是的,最后一个链接似乎非常接近我需要的。我试试看。这似乎很有用。我试试看,让你知道!谢谢,我将此标记为正确答案,因为Laratrust正是我的范围所需要的。无论如何,我可能会在每个表中添加一个“RoleLevel”,以便在后端控制插入、删除等操作。@FedericoArona-很高兴它能为您工作。控制
insert
delete
操作的
RoleLevel
是什么意思?这听起来像是一个
权限
。您也可以将Casbin用于RBAC: