如何在DataGrip中设置SQL Server身份验证方法?

big*_*can 8 sql-server datagrip

有没有办法在使用DataGrip连接到SQL Server时指定身份验证方法(SQL Server或Windows身份验证)?

我尝试使用SQL Server(jTDS)和SQL Server(Microsoft)驱动程序进行配置,但两者都没有看到选项.

小智 19

使用jTDS驱动程序:

这取决于连接/数据源的设置.

即为Windows身份验证设置连接:

  1. 在" 常规 "选项卡中,如果在" 用户"字段中指定Windows/AD用户名.
  2. 在" 高级 "选项卡的DOMAIN属性中,指定在步骤1中放入的Windows帐户的域.
  3. 如果网络上未启用Kerberos身份验证,则可能需要设置USENTLMV2 = true

如果在步骤2中未指定域,则会假定您正在执行SQL Server身份验证登录尝试.

使用Microsoft驱动程序:

我无法在OS X上使用它,但大多数人似乎在Windows上没有问题.

  1. 在数据源的" 高级 "选项卡中,将integratedSecurity设置为true.

你可能还必须为实际的驱动程序设置此属性,在OS X上,我不断得到"此驱动程序未配置为集成身份验证",但这可能是OS X的事情.

希望这可以帮助.


小智 7

我能够使用 Microsoft 7.0.0 SQL Server jdbc 驱动程序在 Intellij 2018.2 中的 MacOS 上进行连接。

(首先,我假设您有 Kerberos 正在运行。要检查这一点,请运行:

klist | grep krbtgt
Run Code Online (Sandbox Code Playgroud)

如果您有 Kerberos 票证,您应该看到:

Aug 29 12:17:34 2018  Aug 29 22:17:34 2018  krbtgt/DOMAIN.COMPANY.COM@DOMAIN.COMPANY.COM
Run Code Online (Sandbox Code Playgroud)

我使用这篇有关使用 ActiveDirectoryIntegrated 身份验证模式进行连接的文章来解决此问题。请注意,我不必执行“步骤 2:在 krb5.conf 中配置 KDC”。)

确保将 jdbc 驱动程序设置为使用集成安全性和 Java Kerberos

项目数据源中的“高级”选项卡的图片

项目数据源中的“高级”选项卡的图片显示身份验证方案

然后,在常规选项卡上,确保将 URL 旁边的下拉菜单更改为“仅 URL”,并输入以下形式的 URL:

jdbc:sqlserver://databaseserver.domain.company.com;database=testdatabase;integratedSecurity=true;authenticationScheme=JavaKerberos;encrypt=true;trustServerCertificate=true;
Run Code Online (Sandbox Code Playgroud)

项目数据源中的“常规”选项卡的图片

如果您将 URL 旁边的下拉菜单保留为“默认”,它将尝试使用用户名/密码,如果您使用集成身份验证,这不是您想要的。另外,如果您离开“trustServerCertificate=true;”,请确保您知道自己在做什么。在网址中。在生产中,您应该正确设置证书,但这不在此处要求的范围内。