gpt4 book ai didi

java - 基于用户权限过滤特殊结果的策略

转载 作者:行者123 更新时间:2023-11-29 08:22:09 24 4
gpt4 key购买 nike

假设我有一个管理敏感数据(例如客户的健康记录)的应用程序。在取得巨大成功后,我吸引了许多客户——其中一些是名人。我现在有很多员工使用这个应用程序。但是,我想通过仅允许特权客户经理访问“名人”的记录来保护所述“名人”的身份。

此应用程序的数据存储在经过多年发展的关系数据库中。 “客户”表有一个“名人”列,表示名人的记录; “用户”表有一个“特权”列,表明员工可以访问名人的记录;假设两者都是 boolean 值。

我可以掠夺整个数据层,为所有查询添加 where 子句;我还必须开始发送一个标志,指示用户是否具有“特权”。这是一项艰巨的任务,但还有其他选择吗?

我正在寻求一般建议,但我的应用程序是在 Java 平台上编写的。

更新:我熟悉基于角色的访问控制以及用户、组、角色、权限、权限等如何以良好的规范化方式进行布局,但这目前还不是一个好的方法。选项。更有可能的是,我将重构和调整当前系统以利用 Spring Security 等框架。

最佳答案

这里的一般情况是不同的用户需要访问不同的客户端。根据我的经验,最好使用角色来实现这一点。不同的用户可以被分配不同的角色。对数据的访问被映射到角色。

就您而言,您可能拥有经理角色和员工角色。经理可以访问所有记录。员工只能访问不太敏感的记录。这种关联可以通过数据库中的表进行管理:比如角色、user_role 和 client_role。 user_role 将用户映射到角色,client_role 将定义哪些角色可以访问客户端信息。

我会谨慎添加您所描述的“著名”专栏。危险在于,将来随着新业务规则的出现,您会发现自己需要更多列以及数据层中的新代码来实现此逻辑。当您通过角色管理访问权限时,您就拥有了一个通用机制,该机制往往更具可扩展性,即使短期内需要做更多的工作。

关于java - 基于用户权限过滤特殊结果的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19057275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com