使用SSMS连接Azure托管SQL Server时遇无法排查的错误
解决SSMS连接Azure托管SQL Server时的
syspolicy_configuration报错问题 我之前也碰到过一模一样的问题,根源在于Azure SQL Database和本地SQL Server的系统对象存在差异——msdb.dbo.syspolicy_configuration这个对象在Azure托管的SQL环境里是不被支持的,而旧版SSMS在刷新数据库列表或切换数据库时,会后台调用这个对象,从而触发报错。
下面是几个亲测有效的解决办法:
升级到最新版SSMS
旧版本的SSMS对Azure SQL Database的兼容性不足,微软在新版中已经修复了这类针对Azure环境的系统对象调用问题。直接安装最新稳定版是最彻底的解决方式。手动指定目标数据库连接
如果你暂时不想升级SSMS,可以在连接服务器时跳过数据库列表刷新:- 打开SSMS的“连接到服务器”窗口
- 点击右下角的「选项 >>」按钮,切换到「连接属性」标签页
- 在「连接到数据库」输入框里,直接填写你要访问的数据库名称
- 完成连接,这样就能绕过触发报错的后台列表刷新操作
禁用SSMS的不必要自动检查
可以通过调整SSMS的设置,关闭会调用syspolicy_configuration的自动检查功能:- 点击顶部菜单的「工具」→「选项」
- 在左侧导航栏找到「SQL Server对象资源管理器」→「行为」
- 查找与“策略配置”或“自动刷新系统对象”相关的选项,将其禁用
- 重启SSMS后生效
内容的提问来源于stack exchange,提问作者DidIReallyWriteThat
相关产品推荐
相关产品推荐

