我们正在使用的一种软件提供了启用加密的选项,这将反射(reflect)在连接字符串的 ENCRYPT = YES 部分中。
我的vb6
应用程序中的连接字符串如下所示:
"Provider=SQLNCLI11;Server=(local);Database=MyDevDB;Uid=MySqlUser;Pwd=myPwd;
Encrypt=yes;OLE DB Services=-1;"
当我的Sql服务器未配置为对来自SQLCMD和SSMS的连接字符串使用加密时,出现错误
"Cannot connect to (local) [...] A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - The certificate chain was issued by an authority that is not trusted.) (Microsoft SQL Server, Error: -2146893019)".
我的问题:为什么在
ADO
应用程序中的VB6
中使用连接时出现相同的错误?VB6让我连接,当然不加密,也没有警告。
有人知道我如何在VB6中捕获它吗?
提前谢谢了!
最佳答案
由于我自己没有通过此求助电话产生任何真正的答案,因此这就是我如何处理ADO的数据库连接中缺少可管理的警告或错误的问题。
我们只是简单地从VB 6代码中完全消除了控制用于加密数据库连接的请求形式的可能性。
确实,因为如果什么都不起作用(错误的证书,无法在Sql Server上进行加密等等),VB 6 ADO(不是.net)实际上并没有告诉我们,因此它不会进行加密,因此我们不知道并且我们做了从 call 者的 Angular 没有明确的认识方法。
通过将连接加密的职责移到Sql服务器上,我们可以安全地工作。
直到我们从环境中删除vb6为止。
关于error-handling - 如果SQL Server没有加密,则VB6使用crypto = true管理错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47475928/