To connect MS SQL Server using windows authentication, the first step is to setup ODBC. You can go to Control panel -> Administrative tools -> ODBC. Add a new DSN to connect MS SQL Server using windows authentication account following wizard setup.
The second step is the similar with using SQL Server authentication. The only change is that the connection string is: jdbc:odbc:dsn-name. There is no need to use username/password any longer, because it is already connected to the server!
Here is a sample code of a database class which uses windows authentication:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Database { public Connection conn = null; private String dbName = null; public Database(){ } public Database(String dbName, String dbURL){ this.dbName = dbName; try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); this.conn = DriverManager.getConnection(dbURL);//here put the new simple url. } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public ResultSet runSql(String sql) throws SQLException { Statement sta = conn.createStatement(); return sta.executeQuery(sql); } } |
The jar file can be downloaded here: http://dev.mysql.com/downloads/connector/j/
what if code executing from remote machine with different windows credentials ? and also what if we run from linux machine?
jdbc:odbc:dsn-name
and how do i find out the dburl?
Hi the post was very helpful. Can you please provide the sqljdbc jar you are using.
I use sqljdbc4.jar.
Hi, great post !
Btw, which driver did you use ? I tried with sqljdbc.jar but it didn’t work. Only jdbc:sqlserver urls seem to work …
Thx.