简体   繁体   English

Spring 管理的数据源连接到 MS Sql 服务器,使用域身份验证

[英]Spring managed datasource connection to MS Sql server with Domain authentication

I am getting an error when trying to create a datasource connection to MS SQL server using JTDS driver within my Spring Config.尝试使用 Spring Config 中的 JTDS 驱动程序创建到 MS SQL 服务器的数据源连接时出现错误。 I am using domain authentication from a non windows machine.我正在使用来自非 Windows 机器的域身份验证。

ERROR:错误:

Caused by: java.sql.SQLException: Login failed. 
The login is from an untrusted domain and cannot be used with Windows authentication.

Spring-Datasource.xml: Spring-Datasource.xml:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver"/>
    <property name="url" value="jdbc:jtds:sqlserver://MS_SERVER/ms_db;domain=myDomain;integrated security=false"/>
    <property name="username" value="myUser"/>
    <property name="password" value="myPassword"/>
</bean>

I can create the connection manually and works perfect like:我可以手动创建连接并完美地工作,例如:

public static void main(String[] args) {
    System.out.println("Starting Connection test");

    Connection connection;

    String url = "jdbc:jtds:sqlserver://MS_SERVER/ms_db;domain=myDomain;integrated security=false";
    try {
        Class.forName("net.sourceforge.jtds.jdbc.Driver");
        connection = DriverManager.getConnection(url, "myUser","myPassword"));
        System.out.println("Connection successful");
    }
    catch (Exception e) {
        System.err.println("Cannot connect to database server");
        e.printStackTrace();
    }
}

Any suggestions would be appreciated任何建议,将不胜感激

Try this:-尝试这个:-

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver"/>
    <property name="url" value="jdbc:jtds:sqlserver://MS_SERVER/ms_db;domain=myDomain;integrated security=false"/>
    <property name="username" value="myUser"/>
    <property name="password" value="myPassword"/>
</bean>

Dependency for DBCP:- DBCP 的依赖:-

<dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.4</version>
</dependency>

As per http://jtds.sourceforge.net/faq.html you need to pass useNTLMv2=true and domain=yourdomain.根据http://jtds.sourceforge.net/faq.html,您需要传递 useNTLMv2=true 和 domain=yourdomain。

Try this connection string试试这个连接字符串

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver"/>
    <property name="url" value="jdbc:jtds:sqlserver://MS_SERVER/ms_db;USENTLMV2=true;domain=myDomain"/>
    <property name="username" value="myUser"/>
    <property name="password" value="myPassword"/>
</bean>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM