【发布时间】:2016-04-08 13:33:24
【问题描述】:
在使用 DataGrip 连接到 SQL Server 时,是否可以指定身份验证方法(SQL Server 或 Windows 身份验证)?
我尝试使用 SQL Server(jTDS) 和 SQL Server(Microsoft) 驱动程序进行配置,但都没有看到任何选项。
【问题讨论】:
标签: sql-server datagrip
在使用 DataGrip 连接到 SQL Server 时,是否可以指定身份验证方法(SQL Server 或 Windows 身份验证)?
我尝试使用 SQL Server(jTDS) 和 SQL Server(Microsoft) 驱动程序进行配置,但都没有看到任何选项。
【问题讨论】:
标签: sql-server datagrip
使用 jTDS 驱动程序:
这取决于连接/数据源的设置。
即为 Windows 身份验证设置连接:
如果您未在步骤 2 中指定域,它将假定您正在尝试 SQL Server 身份验证登录。
使用 Microsoft 驱动程序:
我无法让它在 OS X 上运行,但大多数人在 Windows 上似乎没有问题。
n.b.您可能还必须为实际的驱动程序设置此属性,在 OS X 上,我不断收到“此驱动程序未配置为集成身份验证”,但这可能是 OS X 的事情。
希望这会有所帮助。
【讨论】:
我能够使用 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;”,请确保您知道自己在做什么在网址中。在生产中,您应该正确设置您的证书,但这不在此处要求的范围内。
【讨论】: