SSMS连接Snowflake链接服务器时出现用户无法认证问题求助
SSMS 连接 Snowflake ODBC 外部浏览器认证失败解决方案
核心问题原因
SSMS 默认以 32 位进程运行,调用的是 32 位 ODBC 驱动链路,且默认权限会阻断进程唤起外部浏览器的请求,这也是同样的 ODBC 配置在 PowerBI 中可以正常运行、在 SSMS 中失效的核心差异。
解决步骤
- 优先安装 32 位版本的 Snowflake ODBC 驱动,避免架构不匹配导致的驱动调用异常。
- 打开 32 位 ODBC 数据源管理器,可直接运行路径
C:\Windows\SysWOW64\odbcad32.exe打开,在该管理器内重新创建 Snowflake 数据源,认证方式选择外部浏览器,完成配置后点击测试按钮,确认可以正常唤起默认浏览器完成认证。 - 右键点击 SSMS 快捷方式,选择「以管理员身份运行」,解除 SSMS 进程的调用权限限制。
- 进入 SSMS 后创建链接服务器,数据源选择你在 32 位 ODBC 管理器中配置好的 DSN 名称,安全上下文选择「使用登录名的当前安全上下文建立连接」即可正常完成认证。
备选方案
如果以上操作后依旧无法触发浏览器认证,可采用以下两种方案规避:
- 临时将 ODBC 认证方式改为密钥对认证或者账号密码认证,完成 SSMS 侧的连接配置,密钥对认证需要提前将公钥上传到 Snowflake 对应用户的配置项中。
- 先通过 ODBC 测试环节完成浏览器认证,再在 Snowflake 账户设置中将当前浏览器的认证会话有效期延长到 7 天,短时间内 SSMS 调用 ODBC 时可复用已有会话凭证,无需重新唤起浏览器认证。
注意:不要使用系统默认搜索出来的 64 位 ODBC 数据源管理器配置 SSMS 用的数据源,32 位 SSMS 进程无法读取 64 位管理器的数据源配置
内容的提问来源于stack exchange,提问作者Dzorcz
相关产品推荐
相关产品推荐

