一键登录 更安全快捷
邮箱登录
我已阅读并接受 用户协议 隐私政策

VCSA7.0升级到8.0自定义角色权限丢失排错

不少运维人员完成VCSA从7.0升级至8.0之后,发现之前手动创建的自定义角色看不见,AD域用户登录之后全部没有权限,第一反应是升级把角色删除。实际上升级流程不会物理删除自定义角色,绝大多数场景是登录时SSO身份源域选错,或者升级后外部身份源丢失,造成角色与权限视图无法加载。本文梳理故障现象、底层原理,一步步给出排查操作、VCSA内置权限诊断工具、PowerCLI备份脚本以及升级前运维规范。

有VMware全系列产品官方资源和定制版资源需求的可以移步:

📌故障现象

  • VCSA7.0完整升级到8.0,升级任务显示100%成功,无报错提示。

  • 使用AD域账号登录vSphere Client,之前分配好的自定义角色全部失效,用户提示权限不足,无法浏览集群、虚拟机资源。

  • 打开【菜单‑管理‑角色】列表,自己创建的自定义角色消失,只能看到VMware系统内置角色。

  • 使用[email protected]登录,却可以完整看到全部自定义角色,权限全部完好。

  • 部分环境升级完成,已添加的AD/LDAP身份源直接消失,单点登录配置被重置。

🔍核心根因分析

VCSA跨大版本升级,vpxd数据库会完整迁移所有自定义角色数据,角色本身不会被删除,出现“看不见、权限失效”分为两类情况。

  • SSO身份源域选择错误(最高发):vCenter权限绑定在身份源域上。使用AD账号登录时,如果登录界面选错域,虽然账号密码输入正确,但系统读取不到该域对应的权限分配,表现为角色丢失、无访问权限。使用vsphere.local管理员登录,角色全部可见,说明角色数据完好无损。

  • 外部身份源升级后丢失:7.0升级8.0过程中,AD、LDAP身份源配置没有完成迁移,身份源列表为空。AD用户无法被SSO识别,所有基于AD账号分配的权限全部不生效,但是角色定义依旧保存在数据库内。

  • 极少数场景:升级数据库迁移出现部分异常,角色元数据损坏,此时即使[email protected]登录,自定义角色也看不到。

重要区分:如果[email protected]登录能够看到全部自定义角色,说明角色数据没有丢失,不需要恢复备份,重点排查SSO身份源与域选择。

⚙️分步排查与修复实操

第一步:使用[email protected]登录确认角色是否真实存在

  1. 打开vSphere Client,登录账号填写 [email protected],不要使用AD账号。

  2. 菜单 → 管理 → 访问控制 → 角色,查看列表,检查原有自定义角色是否存在。

  3. 角色完整存在:确认是身份源/域选择问题,往下执行第二步。

  4. 角色全部缺失:数据库迁移异常,需要使用升级前备份恢复,或者导入PowerCLI备份。

第二步:检查SSO单点登录身份源配置

  1. 菜单 → 管理 → 单点登录 → 配置 → 身份源。

  2. 查看列表,确认企业AD域是否还存在。升级后经常出现外部身份源丢失,需要重新添加AD身份源。

  3. AD身份源重新添加完成后,退出浏览器,重新登录。登录弹窗域下拉框务必选择对应的AD域,不要默认vsphere.local

  4. 登录成功后,重新检查资源权限,AD用户即可正常读取分配的自定义角色。

第三步:VCSA内置authz‑doctor工具做权限一致性校验

SSH登录VCSA,输入shell进入bash,调用官方授权诊断工具,检查权限对象、身份源不一致问题。

#执行权限一致性检查
/usr/lib/vmware-vpx/scripts/authz-doctor/authz-doctor.py permission_check

根据输出报告修复报告中标记的无效principal、失效权限条目。

💡PowerCLI升级前导出角色&权限备份脚本(生产必做)

升级VCSA之前,执行导出,保存角色特权清单、资源权限分配,万一升级异常,可以快速重建。

Connect‑VIServer vcenter‑fqdn

#导出全部自定义角色,排除系统内置角色
Get‑VIRole | Where‑Object {$_.IsSystem‑eq $false} |
Select Name,@{Name='Privileges';Expression={[string]::Join("`n",$_.PrivilegeList)}} |
Export‑Csv‑Encoding UTF8 VCSA_Custom_Roles_Backup.csv‑NoTypeInformation

#导出全量对象权限分配清单
Get‑VIPermission | Select Entity,Principal,Role,Propagate |
Export‑Csv‑Encoding UTF8 VCSA_Permission_Backup.csv‑NoTypeInformation

📋故障现象对照表格

现象根因判断处理方式
vsphere.local管理员能看见自定义角色,AD用户看不到权限登录选错SSO域,或者AD身份源丢失重新添加AD身份源,登录选择正确域
vsphere.local登录,自定义角色直接消失数据库迁移异常,角色元数据丢失使用备份恢复,对照PowerCLI备份重建角色
角色存在,但AD用户登录依旧无权限身份源正常,但是权限主体principal对象引用失效删除旧权限条目,重新给AD用户/组分配角色
升级前IWA集成AD,升级后AD用户无法登录IWA身份源在大版本升级不会保留,需要重建身份源删除旧身份源,新建LDAP类型AD身份源

✅生产环境升级运维最佳实践

  • VCSA7升级8正式执行升级前,优先使用[email protected]登录,确认自定义角色列表完整,运行PowerCLI导出角色和权限CSV备份。

  • 升级完成后,优先检查【单点登录‑身份源】,确认AD/LDAP外部身份源是否完整保留,IWA集成的环境大概率需要重建身份源。

  • 测试验证不要直接用AD域账号登录排错,优先使用[email protected]登录,区分“角色真丢失”还是“视图加载异常”。

  • 升级后不要直接大批量重新创建角色,先确认数据库内原始角色数据是否还存在,避免重复创建大量重名角色。

  • 重大版本升级完成,执行authz‑doctor工具扫描一遍权限,提前发现失效权限主体。

❓常见FAQ

Q:重新添加AD身份源之后,原来分配的权限需要全部重新手动分配吗?
A:不需要。只要vpxd数据库没有损坏,身份源重新配置正确,原有权限分配记录会自动生效,不需要逐条重新授权。

Q:登录的时候没有域下拉选择框怎么办?
A:代表SSO没有识别到外部身份源,身份源列表为空,需要先添加AD/LDAP身份源,登录界面才会出现域选择下拉菜单。

Q:升级后,部分AD组权限正常,部分AD组完全失效?
A:检查AD组类型,非通用全局组在LDAP身份源模式下无法读取,替换为通用安全组后重新分配权限。

总结:VCSA7.0升级8.0不会删除自定义角色。出现角色看不见、权限丢失,优先用[email protected]登录确认角色是否真实存在;多数故障为SSO身份源丢失、登录选择错误的域;重新修复身份源配置,使用正确域登录即可恢复,升级前务必备份角色与权限清单。

用户留言 User Comments