我在从Azure网站连接我的DB时遇到了一个错误,它是在虚拟机角色(我有SQL虚拟机角色)。VM Role和Azure Website都在West zone。我面临着以下问题:
SqlException (0x80131904):成功建立了与服务器的连接,但是在登录过程中发生了错误。(提供者:SSL提供者,错误:0 -证书链是由一个不受信任的机构颁发的。)]
我可以使用SSMS连接到我的DB。虚拟机角色的1433端口是开放的。 我的连接有什么问题?
我在从Azure网站连接我的DB时遇到了一个错误,它是在虚拟机角色(我有SQL虚拟机角色)。VM Role和Azure Website都在West zone。我面临着以下问题:
SqlException (0x80131904):成功建立了与服务器的连接,但是在登录过程中发生了错误。(提供者:SSL提供者,错误:0 -证书链是由一个不受信任的机构颁发的。)]
我可以使用SSMS连接到我的DB。虚拟机角色的1433端口是开放的。 我的连接有什么问题?
当前回答
在我的情况下,数据库是坏的。当我重新创建一个新的数据库名称时,错误得到解决。这是来自SQL Server数据库的错误。尝试重新创建一个新的数据库。
其他回答
短的通知。如果您正在使用AWS RDS,您可以从truststore.pki.rds.amazonaws.com获得证书。有关特定链接的详细信息可以在本文档中找到:https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/UsingWithRDS.SSL.html。
只需下载适当的证书并将其安装到您的主机上。
我在通过SSMS将Excel数据导入SQLDatabase时遇到了这个问题。解决方案是在安全部分设置TrustServerCertificate = True
对于那些不喜欢TrustServerCertificate=True答案的人,如果你有足够的访问权限,你可以导出SQL Server证书并在你试图连接的地方安装。这可能不适用于SQL Server自己生成的证书,但如果您使用类似New-SelfSignedCertificate的东西,则可以使用MMC导出证书,然后在客户端上使用MMC导入证书。
SQL Server:
在MMC中添加证书管理单元 浏览到证书>个人>证书 选择新证书,右键单击,然后选择All Tasks > Manage Private Keys(这一步和下面的步骤是使密钥与SQL server一起工作的一部分) 添加具有READ权限的运行SQL Server的标识(如果有疑问,请在Services中查找标识)。 选择新证书,右键单击,选择“All Tasks > Export…” 使用默认设置并另存为文件。
客户端:
使用MMS与相同的管理单元选项和证书>受信任的根证书颁发机构右键单击证书并选择所有任务>导入… 导入之前导出的文件
(我在同一台服务器上做所有事情,直到我重新启动SQL实例,SSMS仍有抱怨问题。这样我就可以在没有信托的情况下加密连接…复选框选中)
在把一个项目从。net 5迁移到。net 6之后,我也遇到了同样的问题。我尝试了建议的解决方案(TrustServerCertificate=True或Encrypt=False),它们按预期工作,但我有一个限制,不能更改连接字符串。因此,如果是这种情况,您仍然可以使用System.Data.SqlClient作为nuget包。就像这里解释的那样,它仍然被维护,但所有新的东西都将进入Microsoft.Data.SqlClient。
我在实体框架迁移中得到了这个消息。我能够与Win Auth连接到Sql Server,并手动创建表。但EF行不通。这个连接字符串终于工作了
Server=MyServerName;Database=MyDbName;Trusted_Connection=SSPI;Encrypt=false;TrustServerCertificate=true