使用证书连接到MSSQL,visual studio“新查询”窗口给出错误“目标主体名称不正确”。

时间:2016-03-21 13:44:03

标签: sql-server visual-studio visual-studio-2013 active-directory certificate

这不是此错误通常表示的SSPI错误

  • 使用sql身份验证,而不是集成身份验证
  • 我能够很好地连接到服务器。
  • “测试连接”报告成功
  • Tables / Views / StoredProc等树都填充得很好
  • “显示表格数据”工作正常

但是打开“新查询”窗口失败(在尝试输入任何内容之前)

  

已成功与服务器建立连接,但随后成功建立了连接   登录过程中发生错误。 (提供者:SSL提供商,   错误:0 - 目标主体名称不正确。)(Microsoft SQL   服务器,错误:-2146893022)

我注意到,当查询窗口出现时,通常包含模式列表(master,model,msdb)的下拉列表未填充,但可能与真正无关(可能是该列表只是加载)在错误发生的任何一点之后)

关闭错误后尝试在窗口中运行查询也会失败。

这很令人困惑,因为“显示数据”链接有效。 (也许是因为没有选择架构)

修改:经过进一步的实验,似乎问题与证书有关。作为我的DBA连接到数据库的信息的一部分,他说要确保“Encrypt”设置为true,“TrustServerCertificate”也设置为true。

我在创建连接时在UI中设置了这些设置,VS生成的连接字符串反映了这些设置:

Data Source=***********;Initial Catalog=***********;Persist Security Info=True;
User Id=***********;Password=***********;
Encrypt=True;TrustServerCertificate=True

出现错误消息后,将弹出一个连接对话框。它与最初用于创建连接的连接对话框略有不同。在该对话框的高级选项卡中,有一个“附加设置”文本框。如果我将“TrustServerCertificate = True”添加到该文本框,那么一切正常。

但我必须让它失败,然后在每次打开连接时设置该设置。为什么它不遵守在初始连接对话框中设置的设置,并且是Visual Studio生成的连接字符串的一部分?

0 个答案:

没有答案