我需要使用JDBC通过Windows身份验证连接到SQL Server,在Windows身份验证中,我从连接字符串中提供用户名和密码。Windows身份验证是否可以实现这一点?
我在JTDS和msql-jdbc上都试过了,但是无法正常工作
private Connection getDBConnection() {
Connection dbConnection = null;
try {
System.out.println("load driver");
Class.forName("net.sourceforge.jtds.jdbc.Driver");
log.info("loaded");
String con = "jdbc:jtds:sqlserver://PNT00-PMP-SQL01:1433/iceware;domain=workgroup;userName=user;password=password";
dbConnection = DriverManager.getConnection(con);
log.info("got connection");
return dbConnection;
} catch (Exception e) {
log.error(e.getMessage());
}
return dbConnection;
}
我尝试了各种组合的用户名和域,但通常得到的东西像:
019 - 01 - 18 14:15:31错误组件演示服务。JdbcService-用户"/"登录失败。客户端连接ID:962eeab5 - 226c-4f85 - 9911 - 644a570529ab
任何帮助都很感激
1条答案
按热度按时间camsedfj1#
您必须在连接字符串
useNTLMv2=true
和domain=yourdomain
中包含这些属性这可能是重复的:Sql Server - connect with windows authentication
还有另一种方法-https://thusithamabotuwana.wordpress.com/2012/07/19/connecting-to-sql-server-from-java/
您也可以尝试下面的代码来获得SQL JDBC连接(用户名和密码在props文件中提供,而不是在连接字符串中指定)