基于虚拟化的安全(VBS)为什么会导致 SQL Server 装不上?
讲清基于虚拟化的安全(VBS)与 SQL Server 安装冲突的原理、症状表现,以及为什么建议在部署 SQL Server 的机器上关闭 VBS。
结论先行
基于虚拟化的安全(VBS,含其子特性 Device Guard / Credential Guard)与 SQL Server 引擎存在兼容性冲突,部分引擎代次在开启 VBS 的机器上会安装失败或装完服务异常(典型为 0x8004 类安装错误)。部署 SQL Server 的标准做法是:装引擎的机器上关闭 VBS 相关特性,尤其是 Windows Server 2025 这类默认强化安全选项的镜像要逐项确认。
为什么 VBS 会挡安装
| 因素 | 说明 |
|---|---|
| 内存隔离 | VBS 启用隔离模式后,引擎可用的内存与地址空间行为改变,部分代次引擎不兼容 |
| 安装检测 | 安装程序会检测 VBS 状态,检测到开启即拦截(具体检测行为以安装向导提示为准) |
| 系统默认开启 | 较新的服务器镜像(如 Windows Server 2025 镜像)可能默认开启或预配置安全选项 |
症状与判断
- 安装向导报依赖或系统规则类错误(0x8004 类),日志里出现虚拟化相关字样。
- 装机前可直接查 VBS 状态:
Get-CimInstance Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard
SecuritySupport 非零即表示 VBS 类特性处于活跃状态。
处理步骤
- 装引擎的机器:在系统设置里关闭 VBS / Credential Guard / Device Guard(BIOS 层与 Windows 层都要确认),重启。
- 重跑 SQL Server 2025 Developer 或 SQL Server 2022 Developer 安装程序。
- 纯办公终端(不装引擎,只装 SSMS 连远程库)不受影响,VBS 可以保持开启。
取舍原则:要装 SQL Server 引擎就关 VBS,不装引擎的机器保持 VBS 开着。同一台机器两头都要的,优先考虑把引擎挪到另一台机器。