c# - 如何使用 C#/VB(Web 窗体或 MVC)和 ms sql server 管理用户角色和权限?

标签 c# sql vb.net

我正在使用需要用户权限和角色的 ms sql server 和 C# 开发和应用程序。目前,我创建了这样的表。

 'privileges_table

  PrivilegeID | PrivilegeName
       1      |  Create
       2      |  Update
       3      |  Delete
       4      |  View

  Roles_Table

  RolesID     | RolesName  | PrivilegeID  | RolesGroup
     1           Admin          1         |   1
     2           Admin          2         |   1
     3           Admin          3         |   1
     4           Secretary      2         |   4
     5           Remote User    4         |   5

  User_Table

  UserID   |  UserName   | UserPass  | RoleGroup
    1      |  Wale       | m%^#@     |     1
    2      |  Jane       | k*&%$#    |     5

  '

我该怎么做才能更好地管理它以减少冗余并仍然避免使用我的 c#/VB 进行过多编码? 感谢所有帮助。

最佳答案

您的 Roles 表中有一些冗余

权限表没问题(虽然这是最常见的权限表)

角色:

ID | Name
---+----------
1  | Admin
2  | Secretary
3  | Remote User

由于一个角色可以有多个权限,一个权限可以分配给多个角色,我们有一个 n:m(或多对多)关系,它由连接表解析

角色权限表

ID | RoleID | PrivilegeID
---+--------+-------------
1  | 1      | 1
2  | 1      | 2
3  | 1      | 3
4  | 2      | 2
5  | 3      | 4

关于命名风格的另一件事:如果你用单数或复数名称为你的表命名,请自己选择 - 不是复数形式,另一个是单数形式,下一个......好吧,我希望你明白了;)

关于c# - 如何使用 C#/VB(Web 窗体或 MVC)和 ms sql server 管理用户角色和权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15957698/

相关文章:

sql - Oracle SQL 查询大于日期语句获取值

mysql - 不同教授和类(class)的 SQL 查询

vb.net - 检测用户存在

c# - 使用 NetTopologySuite TransformGeometry 时出错

c# - HTTPWebRequest.GetResponse() 因通过透明代理的经过身份验证的请求而失败

.net - 如何将日期时间插入SQL数据库表中?

c# - 是否可以区分具有相同完全限定名称的类型?

vb.net - vb.net 中的 LINQ 新手问题

c# - 如何从 X509Store 加载受密码保护的证书?

c# - WCF 数据服务使用错误的 oData 协议(protocol)版本执行 sproc