/* ============================================================================ s_module 增加 b_scope_field(数据范围字段) ---------------------------------------------------------------------------- 数据范围按"记录归属人"判:这个字段就是区分数据是谁创建的(如 b_inputuser_id、 b_applyuser_id)。权限引擎据此拼条件: self → 字段 = 当前用户编码 dept → 由当前用户反查部门,字段 ∈ 该部门的用户集合 dept_tree → 同上,"本部门及下级"取部门子树 字段配在模块上而不是配在用户授权行(s_user_data_power.b_scope_field)上: 同一个模块的所有用户必须用同一字段判范围,否则同一份数据对不同用户含义不同, 也没法解释"为什么这个用户看得到、那个看不到"。授权行上的同名列不再参与判定 (权限引擎只读本列),用户授权界面写入时统一清空它。 历史行保持 NULL:NULL = 该模块不按字段判范围,权限引擎遇到 self / dept / dept_tree 规则时会明确报"未配置判断字段",不静默放行。 ============================================================================ */ if not exists ( select 1 from sys.columns where object_id = object_id('dbo.s_module') and name = 'b_scope_field' ) alter table dbo.s_module add b_scope_field varchar(50) null; GO