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

时间:2016-01-04 20:50:55

标签: sql-server datagrip

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

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

2 个答案:

答案 0 :(得分:17)

使用jTDS驱动程序:

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

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

  1. 在" 一般"选项卡,如果在用户字段中指定Windows / AD用户名。
  2. 在" 高级"选项卡,在 DOMAIN 属性中,指定您在步骤1中输入的Windows帐户的域。
  3. 如果您的网络未启用Kerberos身份验证,则可能需要设置USENTLMV2 = true
  4. 如果您未在步骤2中指定域,则会假定您正在执行SQL Server身份验证登录尝试。

    使用Microsoft驱动程序:

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

    1. 在" 高级"数据源的标签,将 integratedSecurity 设置为true。
    2. n.b。您可能还必须为实际的驱动程序设置此属性,在OS X上我不断得到"此驱动程序未配置为集成身份验证",但这可能是OS X的事情。

      希望这有帮助。

答案 1 :(得分:1)

我能够使用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

我在Connecting using ActiveDirectoryIntegrated Authentication Mode上使用了这篇文章来解决此问题。请注意,我不必 做“步骤2:在krb5.conf中配置KDC”。 )

确保将jdbc驱动程序设置为使用integrated security and Java Kerberos

Picture of Advanced tab in Project Data Sources

Picture of Advanced tab in Project Data Sources showing authentication scheme

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

jdbc:sqlserver://databaseserver.domain.company.com;database=testdatabase;integratedSecurity=true;authenticationScheme=JavaKerberos;encrypt=true;trustServerCertificate=true;

Picture of General tab in Project Data Sources

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