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
- Oracle 11g
Not Fully Tested Resource Versions
- SQL Server
- Apache Derby
Follow these steps to run the stand-alone connector server:
- Download the connector server jar file and store it in the connector server directory (any directory).
- Download the Database Table connector jar file and store it in the bundles subdirectory.
- Add the resource-related third-party JDBC driver jar file to the lib directory.
- Start the connector server. For more information, check the page about this topic.
- Authenticate (Optional) Specify the password column configuration property.
- Sync (Optional) Specify the Change Log Column configuration property.
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.
You can use one of the following methods to connect the JDBC driver to the resource:
- 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.
- Provide the user and password configuration properties and an exact URL Template with a JDBC connection URL (no wild-cards).
- 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.
The following table describes all of the properties that you can specify for the configuration:
|Configuration Property||Type||Required (Driver)||Required (Datasource)||Default Value||Definition|
|JDBC Driver||String||X||The JDBC Driver class name.|
|JDBC URL Template||String|
(%h,%p, and %d)
|The JDBC connection URL Template with %h, %p, and %d wild-cards.|
|Host||String||when %h||Resource host. Used in place of the %h wild card in the URL Template.|
|Port||String||when %p||Resource port. Used in place of the %p wild card in the URL Template.|
|Database||String||when %d||Resource database. Used in place of the %d wild card in the URL template.|
|User||String||X ||Name of the resource admin user with rights to do SELECT, INSERT, UPDATE, or DELETE.|
|Password||String||X ||Resource admin user's password.|
|Datasource||String||X||Datasource name for datasource-managed connections.|
|JNDI Properties||String||Naming of datasource look-up properties.|
|Table||String||X ||X ||Name of the single table where the accounts are stored.|
|Key Column||String||X ||X ||Name of the column where the account's names are stored.|
|Password Column||String||Name of the password column where the account's passwords are stored.|
|Status Column||String||Name of the status column where the account's status (enabled/disabled/...) are stored.|
|Disabled Status Value||String||false||Value of 'status column' indicating disabled users.|
|Enabled Status Value||String||true||Value of 'status column' indicating enabled users.|
|Default Status Value||String||true||Default value for 'status column' in case of value not provided.|
|Change Log Column||String||Name of the column where the last update-related, non-decreasing, value is stored. This value can be a number or a timestamp value.|
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 String||Boolean||false||Select 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 Exceptions||Boolean||true||If 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 Timestamps||Boolean||false||If 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 Native||Boolean||false||If 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 Query||String|
The new connection validation query. The query can be empty. Then the auto commit true/false command is applied by default.
|Password cipher algorithm||String||CLEARTEXT||Cipher 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 key||String||Specify key in case of reversible algorithm.|
|Force password encoding to upper case||Boolean||false||Specify 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 case||Boolean||false||Specify 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 password||Boolean||false||Specify if password must be retrieved by default.|
|Password Charset||String||UTF-8||The password character set used by resource to encode clear password specified as required by java.nio.Charset|
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.
|"column name"||This attribute is required when "column" is NOT NULL. Blobs, clobs, and binaries are not returned by default.|
|All columns ...|
|PASSWORD||This attribute is required for a Password Column and it is not readable or returned by default.|
|NAME||This attribute is required.|