#### JDBC

The Java Database Connectivity (JDBC) authentication module allows OpenSSO to authenticate users through any Structured Query Language (SQL) databases that provide JDBC-enabled drivers. The connection to the SQL database can be either directly through a JDBC driver or through a JNDI connection pool. The JDBC attributes are realm attributes. The attributes are:

- Connection Type

- Connection Pool JNDI Name

- JDBC Driver

- JDBC URL

- Connect This User to Database

- Password for Connecting to Database

- Password for Connecting to Database Confirm

- Password Column String

- Prepared Statement

- Class to Transform Password Syntax

- Authentication Level

##### Connection Type

Specifies the connection type to the SQL database, using either a JNDI (Java Naming and Directory Interface) connection pool or JDBC driver. The options are:

- Connection pool is retrieved via JDNI

- Non-persistent JDBC connection

The JNDI connection pool utilizes the configuration from the underlying web container.

##### Connection Pool JNDI Name

If JNDI is selected in Connection Type, this field specifies the connection pool name. Because JDBC authentication uses the JNDI connection pool provided by the web container, the setup of JNDI connection pool may not be consistent among other web containers. See the OpenSSO Administration Guide for examples

##### JDBC Driver

If JDBC is selected in Connection Type, this field specifies the JDBC driver provided by the SQL database. For example, `com.mysql.jdbc.Driver`.

##### JDBC URL

Specifies the database URL if JDBC is select in Connection Type. For example, the URL for mySQL is `jdbc.mysql://hostname:port/databaseName`.

##### Connect This User to Database

Specifies the user name from whom the database connection is made for the JDBC connection.

##### Password for Connecting to Database

Defines the password for the user specified in User to Connect to Database.

##### Password for Connecting to Database Confirm

Confirm the password.

##### Password Column String

Specifies the password column name in the SQL database.

##### Prepared Statement

Specifies the SQL statement that retrieves the password of the user that is logging in. For example:

     select Password from Employees where USERNAME = ?

##### Class to Transform Password Syntax

Specifies the class name that transforms the password retrieved from the database, to the format of the user input, for password comparison. This class must implement the `JDBCPasswordSyntaxTransform` interface.

##### Authentication Level

The authentication level is set separately for each method of authentication. The value indicates how much to trust an authentication mechanism. Once a user has authenticated, this value is stored in the SSO token for the session. When the SSO token is presented to an application the user wants to access, the application uses the stored value to determine whether the level is sufficient to grant the user access. If the authentication level stored in an SSO token does not meet the minimum value required, the application can prompt the user to authenticate again through a service with a higher authentication level. The default value is 0.

Note – If no authentication level is specified, the SSO token stores the value specified in the Core Authentication attribute Default Authentication Level.