使用DataGrip连接到SQL Server时,是否可以指定身份验证方法(SQL Server或Windows身份验证)?
我尝试使用SQL Server(jTDS)和SQL Server(Microsoft)驱动程序进行配置,并且没有看到任何选项。
答案 0 :(得分:17)
使用jTDS驱动程序:
这取决于连接/数据源的设置。
即。要为Windows身份验证设置连接:
如果您未在步骤2中指定域,则会假定您正在执行SQL Server身份验证登录尝试。
使用Microsoft驱动程序:
我无法在OS X上使用它,但大多数人似乎都没有在Windows上出现问题。
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;”,则知道自己在做什么。在网址中。在生产中,您应该正确设置证书,但这不在此处要求的范围内。