【问题标题】:Can't connect to Azure SQL Database in Jetbrains Datagrip but it works in SMSS无法连接到 Jetbrains Datagrip 中的 Azure SQL 数据库,但它可以在 SMSS 中使用
【发布时间】:2021-12-01 05:58:08
【问题描述】:

我正在尝试使用 Datagrip(我在 Linux 上)连接到 Azure SQL 数据库,但收到连接错误。我尝试在 Windows 机器上安装 Microsoft SQL Server Management Studio (SMSS),它运行良好。

这是 SMSS 连接属性的截图:

这是 Datagrip 连接属性的屏幕截图:

知道我在这里做错了什么吗?

【问题讨论】:

  • 您是否在 Datagrip 的 SSH/SSL 选项卡上配置了 SSL 设置?
  • 您可以尝试从 Portal 复制 JDBC 连接字符串并更改 trustServerCertificate =true 吗?例如:jdbc:sqlserver://{your_servername}.database.windows.net:1433;database={your_databasename};user={username}@{your_servername};password={your_password_here};encrypt=true;trustServerCertificate=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;
  • 请转到数据源属性的高级选项卡并将参数'trustServerCertificate'设置为'true'
  • 是的,将 trustServerCertificate 设置为 'true' 解决了这个问题

标签: sql-server azure-sql-database ssms datagrip


【解决方案1】:

如果连接字符串中的服务器名称在验证时与 TLS 证书中的服务器名称不匹配,则会导致此错误。

当 encrypt 设置为 true 并且 trustServerCertificate 设置为 false 时,JDBC 驱动程序将验证 TLS 证书以确保它连接到正确的服务器。

当 ‘trustServerCertificate’ 设置为 true 时,JDBC 驱动程序将不会在 TLS 证书中进行验证。

  1. 从门户获取 JDBC 连接字符串。

  1. 搜索“trustServerCertificate”并将其设置为“true”。

    jdbc:sqlserver://{your_servername}.database.windows.net:1433;database={your_databasename};user={your_username}@{your_servername};password={your_password_here};encrypt=true;trustServerCertificate=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-08
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-06
    相关资源
    最近更新 更多