Database Table

Overview

The Database Table connector is designed to manage users stored in a single database table that uses any relational database with an SQL92 standard compliant JDBC driver.

Supported Resource Versions

  • PostgreSQL
  • MySQL
  • Oracle 11g

Not Fully Tested Resource Versions

  • DB2
  • SQL Server
  • H2
  • Apache Derby

Installation

Follow these steps to run the stand-alone connector server:

  1. Download the connector server jar file and store it in the connector server directory (any directory).
  2. Download the Database Table connector jar file and store it in the bundles subdirectory.
  3. Add the resource-related third-party JDBC driver jar file to the lib directory.
  4. Start the connector server. For more information, check the page about this topic.

Supported operations

  • Authenticate (Optional) Specify the password column configuration property.
  • Create
  • Delete
  • Update
  • Search
  • Schema
  • Test
  • Sync (Optional) Specify the Change Log Column configuration property.

Configuration

You must include the mandatory driver name configuration parameter as part of the configuration. The connector uses the existence of a driver on the classpath to validate the configuration.

Configuration Methods

You can use one of the following methods to connect the JDBC driver to the resource:

    1. Provide the user, password, host, port, and database name configuration properties.
The mandatory URL Template can contain wild cards such as %h, %p, and %d|%h, %p, and %d. These wild cards will be replaced by provided values such as host, port, and database. If the URL Template contains any of these wild cards, the connector considers the host, port, and database name to be required configuration properties and they are used accordingly.
    1. Provide the user and password configuration properties and an exact URL Template with a JDBC connection URL (no wild-cards).
    2. Provide a datasource name and the optional JNDI properties.
While the datasource name with JNDI properties is sufficient to connect to the resource, the configuration properties mentioned in the previous two methods will not be considered.

See Supported Resource Versions to review the list of resource versions that have been tested with this connector.

The Database Table connector manages users that are located in a single, custom database table. The database table name is a part of the required configuration. The Database Table connector also uses a required keyColumn name configuration property to store the account's names within the custom table.

You can configure the optional passwordColumn name to activate the authentication capabilities. The adapter also supports Active Sync to poll for account changes. To allow Active Sync capabilities, specify the changeLogColumn.

See Configuration Properties for more information about additional optional connector capabilities.

Configuration Properties

The following table describes all of the properties that you can specify for the configuration:

 

Configuration PropertyTypeRequired (Driver)Required (Datasource)Default ValueDefinition
JDBC DriverStringX

 The JDBC Driver class name.
  • Oracle is oracle.jdbc.driver.OracleDriver.
  • MySQL is org.gjt.mm.mysql.Driver.
  • H2 is org.h2.Driver
  • Derby is org.apache.derby.jdbc.ClientDriver
JDBC URL TemplateString

X

(%h,%p, and %d)

  The JDBC connection URL Template with %h, %p, and %d wild-cards.
  • Oracle template is jdbc:oracle:thin:@%h:%p:%d.
  • MySQL template is jdbc:mysql://%h:%p/%d.
  • H2 template is jdbc:h2:tcp://%h:%p/%d. 
  • Derby template is jdbc:derby://%h:%p/%d. For more information, consult your JDBC driver documentation.
HostStringwhen %h  Resource host. Used in place of the %h wild card in the URL Template.
PortStringwhen %p  Resource port. Used in place of the %p wild card in the URL Template.
DatabaseStringwhen %d  Resource database. Used in place of the %d wild card in the URL template.
UserString

  Name of the resource admin user with rights to do SELECT, INSERT, UPDATE, or DELETE.
PasswordString

  Resource admin user's password.
DatasourceString X Datasource name for datasource-managed connections.
JNDI PropertiesString   Naming of datasource look-up properties.
TableString



 Name of the single table where the accounts are stored.
Key ColumnString



 Name of the column where the account's names are stored.
Password ColumnString   Name of the password column where the account's passwords are stored.
Status ColumnString   Name of the status column where the account's status (enabled/disabled/...) are stored.
Disabled Status ValueString  falseValue of 'status column' indicating disabled users.
Enabled Status ValueString  trueValue of 'status column' indicating enabled users.
Default Status ValueString  trueDefault value for 'status column' in case of value not provided.
Change Log ColumnString   Name of the column where the last update-related, non-decreasing, value is stored. This value can be a number or a timestamp value.
QuotingString   

Select whether database column names for this resource should be quoted, and the quoting characters. By default, database column names are not quoted (None). For other selections (Single, Double, Back, or Brackets), column names will appear between single quotes, double quotes, back quotes, or brackets in the SQL generated to access the database.

Enable Empty StringBoolean  falseSelect to enable support for writing an empty string instead of a NULL value. By default empty strings are written as a NULL values.
Rethrow All SQL ExceptionsBoolean  trueIf false, the SQLExceptions with a 0 ErrorCode are considered a success, or not an error, and they are caught and suppressed by the connector. For example, some databases return an exception for an empty result set. Note: No other SQLExceptions are influenced by this property.
Native TimestampsBoolean  falseIf false, timestamp data are read as Strings, which can cause the loss of time milliseconds. Select to retrieve the data as java.sql.Timestamp type, and have the connector perform the conversion.
All NativeBoolean  falseIf false, the attribute data are converted to Strings using the JDBC driver. Select to use the appropriate JDBC types and force the connector perform the conversion as needed.
Valid Connection QueryString   

The new connection validation query. The query can be empty. Then the auto commit true/false command is applied by default.

Password cipher algorithmString  CLEARTEXTCipher algorithm used to encode password before to store it onto the database table. Specify one of the values among CLEARTEXT, AES, MD5, SHA1, SHA256 or a custom implementation identified by its class name.
Password cipher keyString   Specify key in case of reversible algorithm.
Force password encoding to upper caseBoolean  falseSpecify if encoded password must be converted to use uppercase letters. Please, consider that by using this feature password won't be reversible any more, neither using reversible algorithm.
Force password encoding to lower caseBoolean  falseSpecify if encoded password must be converted to use lowercase letters. Please, consider that by using this feature password won't be reversible any more, neither using reversible algorithm.
Retrieve passwordBoolean  falseSpecify if password must be retrieved by default.
Password CharsetString  UTF-8The password character set used by resource to encode clear password specified as required by java.nio.Charset

 

Schema

The Database Table connector only supports the ACCOUNT objectclass.

The following table describes the attributes that are explicitly supported in the schema. All of these attributes are single-valued, and unless specifically noted otherwise in this table, they can be created, updated, and read.

 

Attribute NameDescription
"column name"This attribute is required when "column" is NOT NULL. Blobs, clobs, and binaries are not returned by default.
All columns ... 
PASSWORDThis attribute is required for a Password Column and it is not readable or returned by default.
NAMEThis attribute is required.