我的应用管理用户之间共享的用户数据,具有不同的权限,如只读,编辑,超级用户,重命名,删除等。
我正在权衡两种方法来建模用户权限,第一种是更简单的方法,第二种涉及更多的工作,但更具可扩展性,可重构性,我认为。
(1)快速解决方案,对user permission
属性进行硬编码:
-- basic data
CREATE TABLE symbol (
id INT,
name VARCHAR(255)
);
CREATE TABLE user (
id CHAR(10)
);
CREATE TABLE user_permission (
symbol_id INT,
user_id CHAR(10),
readable BIT,
writable BIT,
owner BIT,
rename BIT,
deletion BIT
);
(2)完整解决方案,对entitlements
进行硬编码:
我正在考虑的领域是:
我想使用更复杂的解决方案,因为它不太可能在将来需要重新工作,但我有点担心UI中涉及的性能和管理任务,以便用户管理它。
乌托邦式解决方案是基于Java的第三方Web应用程序,提供允许管理员使用的用户界面。
编辑:有趣的是看到其他人处理同样的问题:Authorisation in microservices - how to approach domain object or entity level access control using ACL?答案 0 :(得分:0)
由于很难获得与安全相关的软件,我建议不要使用现有的开源解决方案来实现自己的解决方案。在撰写本文时,Hydra项目似乎最有希望。具体请查看您的用例的access control features。