Permissions 特定于数据的用户权限模型/架构设计
我的应用程序管理用户之间共享的用户数据,具有不同的权限,如只读、编辑、超级用户、重命名、删除等 我正在权衡两种建模用户权限的方法,第一种是更简单的方法,第二种涉及更多的工作,但我认为更具可扩展性和可重构性 (1) 快速解决方案,根据Permissions 特定于数据的用户权限模型/架构设计,permissions,domain-driven-design,database-schema,acl,microservices,Permissions,Domain Driven Design,Database Schema,Acl,Microservices,我的应用程序管理用户之间共享的用户数据,具有不同的权限,如只读、编辑、超级用户、重命名、删除等 我正在权衡两种建模用户权限的方法,第一种是更简单的方法,第二种涉及更多的工作,但我认为更具可扩展性和可重构性 (1) 快速解决方案,根据用户权限进行硬编码属性: -- basic data CREATE TABLE symbol ( id INT, name VARCHAR(255) ); CREATE TABLE user ( id CHAR(10) ); CREATE
用户权限进行硬编码
属性:
-- 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) 完整的解决方案,针对权利进行硬编码
:
我正在考虑的领域包括:
编辑:看到其他人解决同样的问题很有趣:由于很难正确使用安全相关软件,我建议不要实施您自己的解决方案,而是使用现有的开源解决方案。在撰写本文时,这个项目似乎最有希望。请特别关注您的用例。由于很难正确使用安全相关软件,我建议您不要实施自己的解决方案,而是使用现有的开源解决方案。在撰写本文时,这个项目似乎最有希望。具体地看一下您的用例。使用KISS和YAGNI。另外,在CQRS中,非规范化是微不足道的。我完全支持KISS,但YAGNI往往过于主观,在现在一点努力就可以节省以后很多努力的情况下被滥用。我很想知道,当涉及到访问列表时,CQR中的非规范化是多么微不足道。如果我完全反规范化,50个用户的访问列表将导致数据量爆炸。您可以使用支持列安全和行安全的Postgres吗?使用KISS和YAGNI。另外,在CQRS中,非规范化是微不足道的。我完全支持KISS,但YAGNI往往过于主观,在现在一点努力就可以节省以后很多努力的情况下被滥用。我很想知道,当涉及到访问列表时,CQR中的非规范化是多么微不足道。如果我完全去规范化,50个用户的访问列表将导致数据量爆炸。您可以使用支持列安全和行安全的Postgres吗。有趣的是,它没有前端,如果我发现任何已经有了前端的东西,它就几乎排除了。有趣的是,它没有前端,如果我发现任何已经有前端的东西,它几乎就不可能出现。