【问题标题】:VBA ADO connection string with Encryption带加密的 VBA ADO 连接字符串
【发布时间】:2021-08-08 02:06:42
【问题描述】:

我有一个通过 Internet 连接的远程数据库 (SQL Server)。

我使用这个连接字符串(完美运行):

ConnectionString = "Driver={SQL Server Native Client 11.0};" _
                            & "Server=xxx.xxx.x.xx;" _
                            & "Database=MyDbName;" _
                            & "Uid=MyId;" _
                            & "Pwd={MyPassword};" _
                            & "Connection Timeout=30;"

我被要求为这个连接字符串添加加密,但我不知道我需要添加什么以及在哪里......

我尝试将此 Encrypt=yes; 推荐添加到连接字符串,但我收到错误消息(“证书链是由不受信任的机构颁发的”)。

服务器操作系统 - Windows server 2016 标准。

用户操作系统 - Windows 7 - 10 和 Excel 2007 - 2019 或 365

【问题讨论】:

  • 你得到什么错误?您的客户端操作系统是什么?服务器的操作系统?
  • @DavidBrowne-Microsoft - 我更新了我的帖子
  • 安装 SQL Server 时,默认使用自签名 X.509 证书,因此您的受信任根存储中的任何 CA 相关证书都不会信任该证书。将Encrypt=yes 添加到您的连接字符串时,您可能还需要包括TrustServerCertificate=yes
  • @AlwaysLearning - 我将"Encrypt=yes;TrustServerCertificate=yes;" 添加到连接字符串并且它可以工作,这是否意味着现在我的连接字符串已加密并且更安全?

标签: sql-server vba ado


【解决方案1】:

如果服务器没有客户端信任的证书,那么如果不使用TrustServerCertificate 连接字符串关键字明确批准不受信任的证书,则无法创建加密连接。

见:Using Encryption Without Validation in SQL Server Native Client

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    • 2016-02-10
    • 1970-01-01
    相关资源
    最近更新 更多