使用 Windows 身份验证从 Spring boot 应用程序连接到 MSSQL

use*_*666 7 unix windows sql-server spring-boot

我目前正在使用以下属性从 Java Spring Boot 应用程序连接到远程 Mssql 服务器:

spring.datasource.url=jdbc:sqlserver://ip\\domain;databaseName=name
spring.datasource.username=abc
spring.datasource.password=def
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
Run Code Online (Sandbox Code Playgroud)

该应用程序在 Windows 和 UNIX 服务器上运行。我现在需要开始使用 Windows 身份验证而不是数据库凭据。MSSQL 端已对此进行配置和支持。从 Java spring boot 来看,这是行不通的。我尝试添加到 url:integratedSecurity=true 它说找不到 dll。我将 sqljdbc_auth.dll 添加到 java jre bin 文件夹中,但它不起作用。

dev*_*oxy 7

我正在研究 MS SQL Server 2016、Hibernate 5.3.7.Final 和 Spring bot 2.2.0。对我来说,将此行添加到属性中有效:(没有 jtds!)

spring.datasource.url=jdbc:servername;databasename=your_db_name;integratedSecurity=true
Run Code Online (Sandbox Code Playgroud)

您可能还需要这些属性:

spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServer2012Dialect
Run Code Online (Sandbox Code Playgroud)

而如果遇到“no sqljdbc_auth in java.library.path”的问题。您可以参考这个答案no sqljdbc_auth


小智 1

尝试使用 jtds 驱动程序,并在应用程序属性中使用:

    app.datasource.youraplication.jdbcUrl=jdbc:jtds:sqlserver://yourBdHost/yourSchemaBd;domain=yourDomain
Run Code Online (Sandbox Code Playgroud)