【问题标题】:How to access specific db records based on user role?如何根据用户角色访问特定的数据库记录?
【发布时间】:2023-03-21 19:52:02
【问题描述】:

为了安全,我有一个与 Active Directory 集成的 Java Spring Hibernate 应用程序。我需要只允许具有特定角色的用户访问表中的某些记录。 例如ROLE1 用户只能访问 TYPE=type1 的记录 ROLE2 用户只能访问 TYPE=type2 的记录 我不想创建 2 种方法来基于 TYPE 访问此数据并根据用户角色保护每种方法。 请让我知道最好的方法是什么。

【问题讨论】:

    标签: java spring-security


    【解决方案1】:

    最实用的解决方案是在记录中添加一个字段,指示谁可以访问它们,然后在检索查询中包含用户的角色。

    【讨论】:

    • 感谢您的回答。由于包括角色在内的用户数据已经存在于 Active Directory 中,将这些数据也保留在数据库字段中是否是一个好的设计?
    • 如果您可以选择,切勿复制这样的数据;它们会不同步并导致问题。
    • 可能我不清楚。我指的是您的回答,不是在记录中添加一个字段来指示谁可以访问它们(角色)不是一个好方法。
    • 非常感谢您的回复。可能是我不清楚。我指的是您的回答,是否在记录中添加一个字段来指示谁可以访问它们(角色)是一个好的设计?我现在正在考虑每次用户使用字段登录时将用户数据保存在表中,以将其映射到给定示例中的“类型”。然后将数据表与该表连接起来,以根据该字段获取记录。并在用户注销时清除用户表。对这种方法有什么想法吗?
    • 这基本上是文件系统所做的,具有不同程度的复杂性(只是传统 Unix 风格文件系统中的所有者和组,以及现代系统(如 ext4 和 NTFS)中的 ACL)。如果您没有关于谁可以访问记录的更通用规则,那么您必须将访问控制信息附加到它。
    猜你喜欢
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多