Security under the IBM DB2 Driver for JDBC Type 4
Freitag, 10. Oktober 2008 by Mike Markgraf
When you use the IBM DB2 Driver for JDBC Type 4, you choose a security mechanism by specifying a value for the securityMechanism property.
Listing 1:

http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.apdv.java.doc/doc/cjvjcsec.htm
We use a DB2 database. The DATA_ENCRYPT option i have chosen as security mechanism see Listing 1.
A big benefits is a db2 client on your computer is not essential.
The database access is successfull when the server and the client jdk equal is. Normal you can use a higher java version.
Listing 2:
package db2.test;
import com.ibm.db2.jcc.DB2SimpleDataSource;
public class DB2Test {
public static void main(String[] args) {
try {
// create data source
DB2SimpleDataSource ds = new DB2SimpleDataSource();
// set connection properties
ds.setServerName("localhost");
ds.setPortNumber(50000);
ds.setDatabaseName("db");
ds.setDriverType(4);
// set trace properties
ds.setTraceDirectory("c:\\temp");
ds.setTraceFile("trace");
ds.setTraceFileAppend(false);
ds.setTraceLevel(com.ibm.db2.jcc.DB2BaseDataSource.TRACE_ALL);
// set security
ds.setSecurityMechanism(com.ibm.db2.jcc.DB2BaseDataSource.ENCRYPTED_USER_PASSWORD_AND_DATA_SECURITY);
// get connection
java.sql.Connection con = ds.getConnection("user", "password");
// execute a query
java.sql.Statement stmt = con.createStatement();
String query = "select a from test_table";
java.sql.ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
System.out.println("\n" + query + " = " + rs.getInt(1));
}
rs.close();
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Listing 1:

http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.apdv.java.doc/doc/cjvjcsec.htm
We use a DB2 database. The DATA_ENCRYPT option i have chosen as security mechanism see Listing 1.
A big benefits is a db2 client on your computer is not essential.
The database access is successfull when the server and the client jdk equal is. Normal you can use a higher java version.
Listing 2:
package db2.test;
import com.ibm.db2.jcc.DB2SimpleDataSource;
public class DB2Test {
public static void main(String[] args) {
try {
// create data source
DB2SimpleDataSource ds = new DB2SimpleDataSource();
// set connection properties
ds.setServerName("localhost");
ds.setPortNumber(50000);
ds.setDatabaseName("db");
ds.setDriverType(4);
// set trace properties
ds.setTraceDirectory("c:\\temp");
ds.setTraceFile("trace");
ds.setTraceFileAppend(false);
ds.setTraceLevel(com.ibm.db2.jcc.DB2BaseDataSource.TRACE_ALL);
// set security
ds.setSecurityMechanism(com.ibm.db2.jcc.DB2BaseDataSource.ENCRYPTED_USER_PASSWORD_AND_DATA_SECURITY);
// get connection
java.sql.Connection con = ds.getConnection("user", "password");
// execute a query
java.sql.Statement stmt = con.createStatement();
String query = "select a from test_table";
java.sql.ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
System.out.println("\n" + query + " = " + rs.getInt(1));
}
rs.close();
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
