安装 SQL Server 2019 时,也会同时安装 ODBC 驱动程序,而 MSSQL 似乎对其有很强的依赖性。是否可以重新配置 MSSQL 以使用较新版本的 ODBC 驱动程序并删除旧版本?我们的第三方漏洞管理扫描程序正在标记较旧版本的 ODBC 驱动程序,但似乎没有办法彻底修复这些发现。
截至本文撰写时的详细信息:
- 我正在使用的服务器正在运行 SQL Server 2019 开发人员版本
- 它在 Windows Server 2019 标准版 VM 上运行
- 此 SQL 服务器的版本为 15.0.4405.4 (CU29)
- 在安装 CU29 之前,此服务器位于 CU27
- 安装的 ODBC 版本是 17.10.6.1
- 所有组件都是 x64,而不是 x86
故障排除/分析:
- 从 CU27 更新到 CU29 并未更新 ODBC 驱动程序的版本
- 我可以手动安装较新版本的 ODBC 驱动程序(18.4.1.1),它将与 17.10.6.1 和平共处,但不会清除漏洞
- 如果我删除 17.10.6.1 来清除漏洞,SQL Server Agent 将无法启动(事件查看器:服务未及时响应启动或控制请求)
- 重新安装 ODBC 17.10.6.1 可以解决问题并允许代理启动 - 但漏洞再次出现
- 在安装 v18.x 驱动程序后修复 SQL Server 只会将 ODBC 驱动程序重新安装到较早的主要版本 (17.xxx),这同样不合规,并且仍然会触发我们的漏洞扫描结果
- 目前似乎还没有 ODBC 17 的新版本,因为 MS 似乎没有同时开发和发布 17.x 和 18.x 的新版本。他们似乎在催促我们使用 v18,但它与 SQL 2019 Agent 配合得并不好。
要点:
- 看来 MSSQL 2019 对 SQL 2019 的 ODBC 驱动程序版本 17 有硬依赖性
- CU 似乎尚未更新这些驱动程序 - 如果有的话
- 似乎没有办法通过 SSMS/UI 重新配置/调整 MSSQL 2019 以使用较新的 ODBC 驱动程序主要版本(例如 18.x)
- 我尚未调查过 Windows 系统注册表编辑
- 无论我在实例构建时安装了哪些组件,这些驱动程序都会被安装,因此最小化我的表面积似乎没有帮助(我将此实例与执行了最小安装的另一个 2019 实例进行了比较 - 它们都有相同的 ODBC 驱动程序。)
问题:
- 这里有没有人遇到过同样的问题?我可以采取什么步骤让 MSSQL 看到/使用较新的 ODBC 驱动程序?
- ODBC 驱动程序更新会随 CU 一起推送吗,还是我需要通过官方 MS 下载手动更新它们?
任何建议/指导都值得赞赏。谢谢。