in sample/java-sample-app/SQLServerKerberosConnection.java [4:52]
public static void main(String[] args) {
System.setProperty("java.security.krb5.principal", args[2] + "@" + args[1]);
String connectionUrl = "jdbc:sqlserver://" + args[0] + ":1433;"
+ "databaseName=EmployeesDB;"
+ "integratedSecurity=true;"
+ "authenticationScheme=JavaKerberos;"
+ "userName=" + args[2] + "@" + args[1] + ";"
+ "serverSpn=MSSQLSvc/" + args[0] + ":1433;"
+ "trustServerCertificate=true";
try {
// Ensure the JDBC driver is loaded
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// Establish the connection
try (Connection connection = DriverManager.getConnection(connectionUrl)) {
System.out.println("Connected successfully using Kerberos authentication.");
// Perform a simple query
try (Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT * from EmployeesDB.dbo.EmployeesTable")) {
ResultSetMetaData metaData = resultSet.getMetaData();
int columnCount = metaData.getColumnCount();
String[] columns = new String[columnCount];
for (int i = 0; i < columnCount; i++) {
columns[i] = metaData.getColumnName(i + 1);
}
printRow(columns);
// Display data rows
while (resultSet.next()) {
String[] row = new String[columnCount];
for (int i = 0; i < columnCount; i++) {
row[i] = resultSet.getString(i + 1);
}
printRow(row);
}
}
}
} catch (ClassNotFoundException e) {
System.err.println("Error loading JDBC driver: " + e.getMessage());
} catch (SQLException e) {
System.err.println("Error connecting to the database: " + e.getMessage());
}
}