如何根据用户角色访问特定的数据库记录?

Posted

技术标签:

【中文标题】如何根据用户角色访问特定的数据库记录?【英文标题】:How to access specific db records based on user role? 【发布时间】:2013-09-03 13:09:42 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

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

以上是关于如何根据用户角色访问特定的数据库记录?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 S3 存储桶锁定到特定用户和 IAM 角色

如何在Dynamics 365中向用户授予对实体的特定记录的读写访问请求?

如何根据具有特定条件的特定记录的用户权限有效过滤大量记录?

如何高度限制具有“特定角色”的用户从“某个地方”访问应用程序?

Wordpress 如何根据每个页面上的用户角色应用特定的 CSS 属性

Oauth2、范围和用户角色