4. 用户权限与站点配置的关联

在 TestStand 的部署体系中,用户权限与站点配置并不是两套彼此独立的设置。用户权限决定“谁能做什么”,站点配置决定“这台机器上实际生效的是什么”。当两者发生交叉时,权限会直接影响站点配置的可见范围、可修改程度以及最终生效结果。理解这种关联,是避免“配置改了却不生效”“换台机器行为不一致”这类问题的关键。

权限如何影响站点配置的访问与修改

TestStand 的用户权限通常通过用户管理器(User Manager)与权限级别(Privilege Level)来组织。常见的权限级别包括 Operator、Technician、Developer、Administrator 等,每一级对应一组权限位,例如“配置站点”“修改 Station Options”“编辑序列文件”“运行测试”等。站点配置则集中保存在 StationOptions、StationGlobals、Search Directories、Report Options、Database Options 等位置,它们共同决定当前站点的运行环境。

权限对站点配置的影响体现在三个层面:

  • 可见性:低权限用户登录后,部分配置对话框可能被隐藏或置灰。例如 Operator 通常看不到 Station Options 中的高级页签,也无法打开 Station Globals 编辑器。
  • 可修改性:即使界面可见,保存动作也可能被拒绝。TestStand 在写入站点级配置前会检查当前用户的权限位,若缺少“Configure Station”权限,保存按钮可能无效或弹出权限不足提示。
  • 生效范围:某些配置项按用户保存,某些按站点保存。按用户保存的配置只影响当前登录用户,按站点保存的配置会影响该机器上的所有用户。权限决定了用户能否把个人修改“提升”为站点级修改。

因此,当一名 Technician 发现某个搜索路径不对时,他可能可以临时修改当前会话的 Search Directories,但无法把该修改写入站点级配置;而 Developer 或 Administrator 则可以把修改固化到站点配置中,使后续所有用户都继承这一设置。

权限继承与覆盖机制

TestStand 的权限与配置都遵循“继承—覆盖”模型。权限方面,用户从所属用户组继承权限,用户组又从更高层级的组或默认权限模板继承。配置方面,站点配置提供默认值,用户级配置可以覆盖站点级配置,而运行时传入的参数或序列文件内的设置又可以覆盖用户级配置。

可以把这种关系理解为一条优先级链:运行时参数 > 序列文件设置 > 用户级配置 > 站点级配置 > 出厂默认值。权限的作用是决定用户能否在某一层写入或覆盖。例如,Operator 只能影响运行时参数和当前会话;Technician 可以修改用户级配置;Developer 可以修改站点级配置;Administrator 还可以修改权限模板本身。

覆盖并不总是“高优先级完全替换低优先级”。对于列表型配置(如 Search Directories),TestStand 可能采用合并策略:站点级提供基础路径,用户级追加个人路径,最终形成合并后的搜索顺序。对于开关型配置(如是否启用某报告格式),则通常是高优先级直接覆盖低优先级。理解这一点,可以解释为什么“我明明改了配置,别人却看不到”——因为改的是用户级,而别人继承的是站点级。

用户权限与站点配置的继承—覆盖关系 权限层级(谁能写) Administrator 可修改权限模板与站点配置 Developer 可写站点级配置 Technician 可写用户级配置 Operator 仅运行时参数/当前会话 Guest / 未登录 只读,继承站点默认 配置优先级(谁覆盖谁) 运行时参数 最高优先级,仅当前执行有效 序列文件设置 随 .seq 文件携带 用户级配置 按登录用户保存 站点级配置 本机所有用户共享 出厂默认值 最低优先级,兜底 常见权限冲突场景 场景一:改了不生效 Technician 改用户级配置 但站点级配置优先级更高 场景二:保存被拒绝 Operator 尝试写站点配置 缺少 Configure Station 权限 场景三:换机不一致 用户级配置未随部署迁移 新机器继承站点默认值 场景四:列表合并歧义 站点路径与用户路径合并 搜索顺序与预期不符 权限决定“能否写入某一层”,优先级决定“哪一层的值最终生效”

常见权限冲突场景分析

场景一:修改后不生效。Technician 在 Station Options 中修改了报告路径,保存后重新运行,发现报告仍然输出到旧路径。原因通常是:该修改被写入了用户级配置,而站点级配置中已经显式指定了报告路径,且站点级优先级更高。解决方法是让 Developer 或 Administrator 在站点级配置中同步修改,或者确认该配置项是否支持用户级覆盖。

场景二:保存按钮不可用。Operator 打开 Station Globals 编辑器,修改了某个全局变量,但保存时提示权限不足。这是因为 Station Globals 默认属于站点级配置,写入需要“Configure Station”权限。此时可以临时在运行时通过序列变量传递参数,或由 Technician 以上权限用户代为修改。

场景三:换一台机器行为不一致。Developer 在自己的机器上把 Search Directories 追加了一条自定义路径,测试通过。但部署到产线机器后,测试找不到文件。原因是该路径保存在用户级配置中,没有随部署包迁移到新机器;新机器上的 Operator 继承的是站点级配置,不包含这条路径。正确做法是把该路径写入站点级配置,或通过部署工具统一分发。

场景四:列表合并导致搜索顺序异常。站点级 Search Directories 包含 D:\TestStand\Sequences,用户级追加了 D:\MySeqs。TestStand 合并后可能把用户路径排在站点路径之前,导致同名文件被优先加载。若这不是预期行为,应调整合并顺序或避免同名文件。

排查权限与配置冲突时,建议按以下顺序检查:当前登录用户与权限级别 → 该配置项属于用户级还是站点级 → 是否存在更高优先级的覆盖 → 是否需要提升权限或修改站点级配置。TestStand 的 Station Options 和用户管理器可以帮助确认当前生效的权限位与配置来源。

掌握权限与站点配置的关联后,就能在部署前有意识地判断:哪些配置应该放在站点级、哪些可以留给用户级、哪些必须由管理员统一固化。这样既能保证产线环境的一致性,又能保留必要的灵活性。