在 Mac 上使用 JBDC 的 Windows Authentication for SQL Server

是否可以从Mac使用Windows身份验证/集成安全性连接到SQL Server?我正在使用微软提供的4类JDBC驱动程序。前端(表单应用程序)是用 Java 编码的。一切都在Windows上运行良好,但办公室里的一个人使用Mac。

这可能吗?仅供参考,我从未使用过Mac,所以我是它们的新手。我已经在互联网上搜索了所有内容,但没有找到解决方案。提前感谢您。


答案 1

根据我的经验,这些信息很难获得。自从微软更改规则并添加参数以来,我的所有搜索都出现了错误(过时)的信息。为了帮助下一个人,下面是一个有效的连接字符串示例:authenticationScheme

jdbc:jtds:sqlserver://123.123.123;instance=server1;databaseName=students;integratedSecurity=true;authenticationScheme=JavaKerberos

同样在驱动程序属性集 。不要在任何用户名设置中包含域。"Domain"

这是在Mac OSX上使用Squirrel SQL(Java)和jtds进行测试的。希望前一句有需要知道此信息的人可能使用的搜索词。


答案 2

使用 Kerberos Integrated Authentication 连接到 SQL Server

从 Microsoft JDBC 驱动程序 4.0 for SQL Server 开始,应用程序可以使用 authenticationScheme 连接属性来指示它希望使用类型 4 Kerberos 集成身份验证连接到数据库。


用于 SQL Server 的 jTDS JDBC 驱动程序支持 Windows 身份验证,只需使用常见问题解答中所述的属性即可。

指定要在其中进行身份验证的 Windows 域。如果存在并且提供了用户名和密码,则jTDS使用Windows(NTLM)身份验证而不是通常的SQL Server身份验证(即提供的用户和密码是域用户和密码)。这允许非 Windows 客户端登录到仅配置为接受 Windows 身份验证的服务器。

如果域参数存在,但没有提供用户名和密码,jTDS 将使用其本机单一登录库并使用已登录的 Windows 用户的凭据登录(为此,显然需要在 Windows 上登录,登录到域,并且还安装了 SSO 库 - 请参阅 README。SSO 在分发中关于如何执行此操作)。