Omnismith 在其 RBAC 引擎中新增了行级 Access Scopes,将动态权限规则直接编译到数据库查询层。这一扩展解决了多租户环境下数据隔离的核心难题。
平台的安全模型分三层:模块级(控制功能区访问)、资源级(限制模板/字段权限)和新增的数据级(Access Scopes)。每个 Access Scope 绑定到单个模板,通过字符串、列表或引用条件对行级数据进行过滤。例如,可配置司机仅能看到分配给自己的发货记录。
条件类型包括:字符串匹配(如按团队名过滤)、列表值匹配(如按工作流阶段)、引用条件(如校验发货单的司机引用是否与当前用户实体匹配)。多个 Scope 间采用逻辑 OR,支持复杂业务规则。
该平台绕过应用层过滤,将 Access Scopes 编译为原生 SQL,在 CQRS 读取查询中动态追加条件,由 PostgreSQL 在存储层强制隔离。性能方面,动态子句可能影响索引选择,但 Omnismith 设计了针对 EAV 属性的优化索引策略。为鼓励测试,首个发现因 Access Scope 复杂度导致数据库查询性能下降的租户可获得月度订阅折扣。
Access Scopes 提供了从粗粒度到细粒度的统一数据隔离机制,覆盖 Web 应用、API、工作流和 AI 助手的所有交互路径。
#开发者 #工具 #Omnismith #RBAC #RowLevelAccess #CQRS #PostgreSQL #MultiTenant #数据库安全
@DevToolboxHub
