16

使用 DataGrip 连接到 SQL Server 时,是否可以指定身份验证方法(SQL Server 或 Windows 身份验证)?

我曾尝试同时使用 SQL Server(jTDS) 和 SQL Server(Microsoft) 驱动程序进行配置,但都没有看到任何选项。

4

2 回答 2

30

使用 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 的事情。

希望这可以帮助。

于 2016-01-07T13:59:11.693 回答
6

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

(首先,我假设你有 Kerberos 工作。要检查,运行:

klist | grep krbtgt

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

Aug 29 12:17:34 2018  Aug 29 22:17:34 2018  krbtgt/DOMAIN.COMPANY.COM@DOMAIN.COMPANY.COM

我使用这篇关于使用 ActiveDirectoryIntegrated Authentication Mode 进行连接的文章来解决这个问题。请注意,我不必执行“第 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;

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

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

于 2018-08-29T21:55:10.350 回答