数据库设计的多级授权Rolebased [英] Database design for Multi level Rolebased authorization

查看:268
本文介绍了数据库设计的多级授权Rolebased的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我设计的ASP.NET应用程序的Web-从需要多层基于角色的授权和权限(CRUD操作)。

I'm designing an application in ASP.NET Web-From which require Multilevel role-based authorization and permission (CRUD Operation ) .

它要求在访问Web窗体和CRUD操作上的表格和数据库的表中做授权用户。

It required to do authorization users at accessing Web-Forms and CRUD Operations On Forms And tables of database .

应用程序的管理员将能够确定哪些角色访问特定网页和授权的操作。

Administrator of the application would be able to determine which roles has access to specific page and which operation authorized to do .

//More Info :

我使用的ASP.NET Web表格4.0和Entity Framework 4.1数据库的第一种方法。

I'm using ASP.NET Web-Form 4.0 and Entity Framework 4.1 Database First approach.

我熟悉ASP.NET 2.0成员,角色,表单验证。

I'm familiar with ASP.NET 2.0 Membership, Roles, Forms Authentication .

我想AP preciate在设计数据库的任何建议或帮助。

I would appreciate any recommendation or help in designing Database .

推荐答案

如果我理解正确的这个,然后你会拥有一组用户(以亚群可能细分为:每个子集作为一个集团)。

If I understand this correctly, you will then have a Set of Users (possibly subdivided in SubSets: each Subset being a Group).

还有:


  1. 一个用户总是至少有一个集团
  2. 的一部分
  3. A组可能是另一个组
  4. 的一部分
  5. 实际的ACL设置在集团层面和定义
    每个表或表。

  1. A User is always part of at least one Group
  2. A Group may be part of another Group
  3. Actual ACLs are set at Group Level and defined for each Form or Table.

所以:

    Item     Type  GroupId     C R U D
   Form001    F    ALL_USERS   N Y N N
   Form001    F    Sales       N R U N
   Form002    F    Admin       N Y Y Y
   All_FORMS  T:F  Admin       Y Y Y Y
   Tab-045A   D    Sales       Y Y Y Y

它说:
Form001是(F)ORM和每个人都可以读(但不能修改它的结构)。
从销售组,用户可以使用表1来更新了。
管理员(组)可以修改,删除或使用表格Form002(但不能创建它...)
管理员可以创建新的形式。
制表045A是一个表,其记录可以创建/使用/修改/从销售组的用户删除。

Which says: Form001 is a (F)orm and Everyone can Read it (but not modify its structure). Users from the SALES group can use Form 1 to update, too. Administrators (a Group) can modify, delete or use Form Form002 (but not create it...) Administrators can Create new Forms. Tab-045A is a table, whose records can be created/used/modified/deleted by users from the Sales group.

几个注意事项:


  • 请大家做一个忙,不允许特权,在单个用户的水平,但始终只在组级别进行设置。新的用户将自动ALL_USERS的一部分,并且可以稍后加入以(或删除)的其他基团。

  • 这可能是最好的不仅表和表单,但形式组织太(假设形式可以由最终用户创建)。如果不是这种情况,则C字段我设置的CRUD标志变成无用的形式。 (是形式的东西,一个用户组可以设计?还是他们的应用程序的一部分,因为我想将与表的情况?)。

  • 在一般的,你必须定义创建/读取/更新相应的语义/删除。对于表我想这意味着创建一个记录(不是表),但它的形式是一个有点此刻混淆。

  • 上面的表仅仅是一个例子,并且是不正常正常化。根据具体情况,你可能必须将其拆分成至少两个表,可能更多。

  • 在以找出是否用户X能够在对象ž做Y操作,你基本上要查找的项目/组表设置权限,请参阅用户X是组的一部分。

  • 您必须妥善管理情况下,当一个用户是两个不同的群体的一部分,而且通常会选择一个与最权限或所有权限的联合。

  • 您必须管理情况下,用户是一组是另一个的子群的一部分,所具有的权限在更高级别小组进行了定义。

拥有管理组和子你最好看看什么样的设施存在于你的目标数据库管理树结构。你最好通过看这个几个问题,刷上的主题。这里有一个给你一个开始,但它不是唯一的一个:

Having to manage groups and subgroups you better look what kinds of facilities exist in your target DB to manage Tree structures. And you better brush up on the subject by looking at a few questions about this. Here is one to give you a start, but it's not the only one:

如何存储树SQL数据库

这篇关于数据库设计的多级授权Rolebased的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆