【问题标题】:Method for storing access rights of user存储用户访问权限的方法
【发布时间】:2012-05-28 15:42:51
【问题描述】:

我正在用 Java 创建一个应用程序(并使用 Mysql 作为 DBMS)。
我的应用程序。有用户,每个用户可以被允许或不允许应用程序的每个功能。 有 8 种不同的静态权限。
如何为每个用户存储这些权限?
像 Unix 文件模式位(例如 0775)一样存储它是一个好主意吗?

谢谢

【问题讨论】:

  • 在问这个问题之前,您需要考虑您的用例。有什么要求 - 安全性、性能、弹性等。
  • 我认为这是一个有效的问题,提供了足够的上下文来值得一个(或两个)好的答案......据我了解,这与角色无关,这是关于行级权限,例如“用户可以更改此实体”,“组成员可以添加子实体”等。我倾向于认为 Unix 位方法是一个好主意,但我看到了一个缺点:权限字符串的语义可能永远不会改变,例如右起第二个数字始终表示具有一组固定可能值的“组权限”。点赞。

标签: java acl user-permissions


【解决方案1】:

您可以以位格式存储值,例如

对于权限 1,您可以将值存储为 00000001 对于权限 2,您可以将值存储为 00000010

等等

您使用按位 And(&) 操作来映射或验证用户的权限

【讨论】:

    【解决方案2】:

    众多方法中的 3 个:

    1) 数据库:定义管理员、管理员等角色,以便他们可以拥有查看、编写角色。这些表将包含用户和分配给他们的角色。

    2) 用于存储名称和角色的 xml 文件。 (Tomcat 就是一个很好的例子。你可以将角色存储在 conf.xml 中)

    3) 如果你想抛弃 db 和 xml.. 简单的位操作也可以帮助你。 http://vipan.com/htdocs/bitwisehelp.html

    本网站解释了如何使用位操作来使用权限。

    【讨论】:

      【解决方案3】:

      你可以在数据库中做。

      Users_Table

      身份证

      名字

      姓氏

      Users_RIGHTS

      USER_ID

      RIGHT_ID

      RIGHTS_TALBE

      身份证

      名字

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-29
        • 2019-12-24
        • 1970-01-01
        • 2021-01-18
        • 1970-01-01
        • 2011-04-10
        • 2017-11-12
        相关资源
        最近更新 更多