Database Application Tables Integration Reference
Database Application Tables Components Certified for Integration with Oracle Access Governance
The Database Application Tables components that you can integrate with are listed below.
Certified Components
Table - Certified Components
Component Type | Component |
---|---|
Oracle Specific Requirements | |
System | The target system can be database tables from
any one of the following RDBMSs:
|
JDK | JDK 1.6 or later |
Microsoft SQL Server Specific Requirements | |
System | Microsoft SQL Server 2016, 2017 |
JDBC Drivers | For Microsoft SQL Server 2014: sqljdbc4 version 4.0 |
Microsoft MySQL Specific Requirements | |
System | MySQL 5.x, MySQL 8.x |
JDBC Drivers | mysql-connector-java-5.1.12-bin |
General Requirements | |
Format in which user data is stored in the system |
You can use a Database Application Tables connector only if user data is stored in the target system in any one of the following formats:
|
Other requirements of the system |
The system must meet the following requirement:
|
Supported Configuration Modes for Database Application Tables Integrations
Oracle Access Governance integrations can be setup in different configuration modes depending on your requirement for on-boarding identity data, and provisioning accounts.
Supported Modes
Database Application Tables Orchestrated System supports the following modes:
- Authoritative SourceYou can use Database Application Tables as an authoritative (trusted) source of identity information for Oracle Access Governance where:
- All user data is in a single table or view OR
- All user data is in a single updatable view (that is based on one or more tables)
- Managed SystemYou can manage Database Application Tables permissions where:
- All user data is in a single table or view OR
- All user data is in a single updatable view (that is based on one or more tables) OR
- User data is spread across one parent table and one or more child tables. OR
- User data is spread across one updatable view (that is based on one or more tables) and one or more child views (that are based on one or more tables).
Configure A Minimum Privileged Service User For Database Application Tables (Oracle)
To enable a secure connection between Oracle Access Governance and the Database Application Tables (Oracle) database, you can create a service user with the minimum privileges required to configure the integration.
Permissions Required for Authoritative Source Mode
If you configure your Database Application Tables (Oracle)
orchestrated system in authoritative mode, you need to grant read permissions to your service user on
the table containing your identities, so that they can be loaded into Oracle Access Governance. The minimum set of permissions required in this case is SELECT
permission on the table containing identity or person information.
GRANT SELECT ON MYDBAT_PERSON TO SERVICEUSER;
where:MYDBAT_PERSON
: Is the table in your Database Application Tables (Oracle) database containing identity information.SERVICEUSER
: Is the service account user.
Permissions Required for Managed System Mode
If you configure your Database Application Tables (Oracle)
orchestrated system in managed system mode, you need to grant read and write permissions for account
tables and permissions tables, to allow for reconciliation, create, update, and
delete of accounts and account permissions. The minimum set of permissions required
in this case is SELECT
, INSERT
,
UPDATE
, and DELETE
permissions on the account
and account permission tables.
GRANT SELECT, INSERT, UPDATE, DELETE ON MYDBAT_PERSON TO SERVICEUSER;
GRANT SELECT, INSERT, UPDATE, DELETE ON MYDBAT_ROLES TO SERVICEUSER;
GRANT SELECT, INSERT, UPDATE, DELETE ON MYDBAT_GROUPS TO SERVICEUSER;
GRANT SELECT, INSERT, UPDATE, DELETE ON MYDBAT_PERSON_ROLE TO SERVICEUSER;
GRANT SELECT, INSERT, UPDATE, DELETE ON MYDBAT_PERSON_GROUP TO SERVICEUSER;
whereMYDBAT_PERSON
: Is the table in your Database Application Tables (Oracle) database containing account information.MYDBAT_ROLES
: Is the table in your Database Application Tables (Oracle) database containing role information.MYDBAT_GROUPS
: Is the table in your Database Application Tables (Oracle) database containing group information.MYDBAT_PERSON_ROLE
: Is the table in your Database Application Tables (Oracle) database containing people role information.MYDBAT_PERSON_GROUP
: Is the table in your Database Application Tables (Oracle) database containing group role information.SERVICEUSER
: Is the service account user.
Permissions Required for Custom Scripts
If you want to develop custom scripts for operations on the Database Application Tables (Oracle) integration as described in Develop Custom Scripts for Database Application Tables (Oracle) Using Groovy, you will need to add permissions to any stored procedures or other database objects referenced in your custom scripts. If you create the stored procedures using the service user then you should not require any permissions. If stored procedures or other database objects are created in another user, then you should grant permissions as appropriate.
GRANT EXECUTE ON MYDBAT_CUSTOMDEV.GET_USERROLE TO SERVICEUSER;
where:MYDBAT_CUSTOMDEV
: Is the user you used to create the stored procedure.GET_USERROLE
is the stored procedure name.SERVICEUSER
: Is the service account user.
Configure A Minimum Privileged Service User For Database Application Tables (MSSQL)
To enable a secure connection between Oracle Access Governance and the Database Application Tables (MSSQL) database, you can create a service user with the minimum privileges required to configure the integration.
Permissions Required for Authoritative Source Mode
If you configure your Database Application Tables (MSSQL)
orchestrated system in authoritative mode, you need to grant read permissions to your service user on
the table containing your identities, so that they can be loaded into Oracle Access Governance. The minimum set of permissions required in this case is SELECT
permission on the table containing identity or person information.
GRANT SELECT ON MYDBAT_PERSON TO SERVICEUSER;
where:MYDBAT_PERSON
: Is the table in your Database Application Tables (MSSQL) database containing identity information.SERVICEUSER
: Is the service account user.
Permissions Required for Managed System Mode
If you configure your Database Application Tables (MSSQL)
orchestrated system in managed system mode, you need to grant read and write permissions for account
tables and permissions tables, to allow for reconciliation, create, update, and
delete of accounts and account permissions. The minimum set of permissions required
in this case is SELECT
, INSERT
,
UPDATE
, and DELETE
permissions on the account
and account permission tables.
GRANT SELECT, INSERT, UPDATE, DELETE ON MYDBAT_PERSON TO SERVICEUSER;
GRANT SELECT, INSERT, UPDATE, DELETE ON MYDBAT_ROLES TO SERVICEUSER;
GRANT SELECT, INSERT, UPDATE, DELETE ON MYDBAT_GROUPS TO SERVICEUSER;
GRANT SELECT, INSERT, UPDATE, DELETE ON MYDBAT_PERSON_ROLE TO SERVICEUSER;
GRANT SELECT, INSERT, UPDATE, DELETE ON MYDBAT_PERSON_GROUP TO SERVICEUSER;
whereMYDBAT_PERSON
: Is the table in your Database Application Tables (MSSQL) database containing account information.MYDBAT_ROLES
: Is the table in your Database Application Tables (MSSQL) database containing role information.MYDBAT_GROUPS
: Is the table in your Database Application Tables (MSSQL) database containing group information.MYDBAT_PERSON_ROLE
: Is the table in your Database Application Tables (MSSQL) database containing people role information.MYDBAT_PERSON_GROUP
: Is the table in your Database Application Tables (MSSQL) database containing group role information.SERVICEUSER
: Is the service account user.
Permissions Required for Custom Scripts
If you want to develop custom scripts for operations on the Database Application Tables (MSSQL) integration as described in Develop Custom Scripts for Database Application Tables (Oracle) Using Groovy, you will need to add permissions to any stored procedures or other database objects referenced in your custom scripts. If you create the stored procedures using the service user then you should not require any permissions. If stored procedures or other database objects are created in another user, then you should grant permissions as appropriate.
GRANT EXECUTE ON OBJECT::dbo.GET_USERROLE TO SERVICEUSER;
where:OBJECT::dbo
: Is the Microsoft MSSQL database object.GET_USERROLE
is the stored procedure name.SERVICEUSER
: Is the service account user.
Configure A Minimum Privileged Service User For Database Application Tables (MySQL)
To enable a secure connection between Oracle Access Governance and the Database Application Tables (MySQL) database, you can create a service user with the minimum privileges required to configure the integration.
Permissions Required for Authoritative Source Mode
If you configure your Database Application Tables (MySQL)
orchestrated system in authoritative mode, you need to grant read permissions to your service user on
the table containing your identities, so that they can be loaded into Oracle Access Governance. The minimum set of permissions required in this case is SELECT
permission on the table containing identity or person information.
GRANT SELECT ON MYDBAT_PERSON TO SERVICEUSER;
where:MYDBAT_PERSON
: Is the table in your Database Application Tables (MySQL) database containing identity information.SERVICEUSER
: Is the service account user.
Permissions Required for Managed System Mode
If you configure your Database Application Tables (MySQL)
orchestrated system in managed system mode, you need to grant read and write permissions for account
tables and permissions tables, to allow for reconciliation, create, update, and
delete of accounts and account permissions. The minimum set of permissions required
in this case is SELECT
, INSERT
,
UPDATE
, and DELETE
permissions on the account
and account permission tables.
GRANT SELECT, INSERT, UPDATE, DELETE ON MYDBAT_PERSON TO SERVICEUSER;
GRANT SELECT, INSERT, UPDATE, DELETE ON MYDBAT_ROLES TO SERVICEUSER;
GRANT SELECT, INSERT, UPDATE, DELETE ON MYDBAT_GROUPS TO SERVICEUSER;
GRANT SELECT, INSERT, UPDATE, DELETE ON MYDBAT_PERSON_ROLE TO SERVICEUSER;
GRANT SELECT, INSERT, UPDATE, DELETE ON MYDBAT_PERSON_GROUP TO SERVICEUSER;
whereMYDBAT_PERSON
: Is the table in your Database Application Tables (MySQL) database containing account information.MYDBAT_ROLES
: Is the table in your Database Application Tables (MySQL) database containing role information.MYDBAT_GROUPS
: Is the table in your Database Application Tables (MySQL) database containing group information.MYDBAT_PERSON_ROLE
: Is the table in your Database Application Tables (MySQL) database containing people role information.MYDBAT_PERSON_GROUP
: Is the table in your Database Application Tables (MySQL) database containing group role information.SERVICEUSER
: Is the service account user.
Permissions Required for Custom Scripts
If you want to develop custom scripts for operations on the Database Application Tables (MySQL) integration as described in Develop Custom Scripts for Database Application Tables (Oracle) Using Groovy, you will need to add permissions to any stored procedures or other database objects referenced in your custom scripts. If you create the stored procedures using the service user then you should not require any permissions. If stored procedures or other database objects are created in another user, then you should grant permissions as appropriate.
GRANT EXECUTE ON MYSQLDB.GET_USERROLE TO 'SERVICEUSER';
where:MYSQLDB
: Is the MySQL database in which you created the stored procedure.GET_USERROLE
Is the stored procedure name.SERVICEUSER
: Is the service account user.
Supported Operations When Provisioning To Database Application Tables
When you provision an account from Oracle Access Governance to Database Application Tables certain operations are supported.
- Create account
- Enable account
- Disable account
- Revoke account
- Assign permission
- Remove permission
Supported Data Types
The data types supported for reconciliation and provisioning operations are listed in the following section:
For Oracle Database
The data types supported for reconciliation and provisioning operations for an Oracle Database orchestrated system are as listed below:
- VARCHAR2
- CHAR
- NUMBER
- NUMERIC
- INTEGER
- INT
- SMALLINT
- DOUBLE
- FLOAT
- DECIMAL
- DEC
- REAL
- DATE
- TIMESTAMP
For Microsoft SQL Server
The data types supported for reconciliation and provisioning operations for a Microsoft SQL Server database orchestrated system are as listed below:
- CHAR
- VARCHAR
- SMALLINT
- INT
- BIGINT
- DECIMAL
- NUMERIC
- NVARCHAR
- FLOAT
- REAL
- SMALLDATETIME
- DATETIME
For MySQL
The data types supported for reconciliation and provisioning operations for an MySQL database orchestrated system are as listed below:
- BOOL
- SMALLINT
- MEDIUMINT
- INT
- BIGINT
- FLOAT
- DOUBLE
- DECIMAL
- CHAR
- VARCHAR
- TINYTEXT
- DATE
- DATETIME
- TIMESTAMP
Default Supported Attributes
As Database Application Tables integration requires schema discovery, and the discovered schema is not fixed,
there are no specific default supported attributes as such. You can modify your
schema.json
to add core and custom attributes as required. As a
minimum you should include the uid
and name
attributes required for an Oracle Access Governance identity as defined in Core Identity Attributes.
Default Matching Rules
In order to map accounts to identities in Oracle Access Governance you need to have a matching rule for each Orchestrated System.
The default matching rule for Database Application Tables orchestrated system is:
Table - Default Matching Rules
Mode | Default Matching Rule |
---|---|
Authoritative Source Identity matching checks if incoming identities match an existing identity or are new |
Screen value:
Attribute name:
|
Managed System Account matching checks if incoming accounts match with existing identities. |
Screen value:
Attribute name:
|
Database Access Table Guidelines
When using database access tables with Oracle Access Governance you should consider the following guidelines in the design and structure of your tables.
General Guidelines
- The Name and Key columns for any entity must be configured as NOT NULL.
- For a given entity, the same database column can be configured as the Name and the Key. You can also use different columns for these if required.
- Any core attribute included in the ACCOUNT entity should comply with the
following rules:
- The column data type should be compatible with the Oracle Access Governance-side data type.
- Any attribute that is configured as
"nature":["REQUIRED"]
in the schema JSON file should correspond to a NOT NULL database field.
- ENTITLEMENT and LOOKUP tables must have a primary key constraint on key columns.
- If related columns on ENTITLEMENT and LOOKUP tables match then there is no need to define a foreign key relationship between your ACCOUNT/TARGETACCOUNT tables and the ENTITLEMENT and LOOKUP tables. See the following section for more details.
Table Relationships
CREATE TABLE MYDBAT_PERSON
(USERID VARCHAR2 NOT NULL ENABLE,
USERNAME VARCHAR2 NOT NULL ENABLE,
FIRSTNAME VARCHAR2,
LASTNAME VARCHAR2,
EMAIL VARCHAR2 NOT NULL ENABLE,
HOMECOUNTRY VARCHAR2,
FOREIGN KEY (HOMECOUNTRY) REFERENCES MYDBAT_COUNTRY(COUNTRYCODE));
CREATE TABLE MYDBAT_COUNTRY
(COUNTRYCODE VARCHAR2 NOT NULL ENABLE,
COUNTRYNAME VARCHAR2 NOT NULL ENABLE,
CONSTRAINT MYDBAT_COUNTRY_PK PRIMARY KEY (COUNTRYCODE)
CREATE TABLE MYDBAT_PERSON
(USERID VARCHAR2 NOT NULL ENABLE,
USERNAME VARCHAR2 NOT NULL ENABLE,
FIRSTNAME VARCHAR2,
LASTNAME VARCHAR2,
EMAIL VARCHAR2 NOT NULL ENABLE,
COUNTRYCODE VARCHAR2);
CREATE TABLE MYDBAT_COUNTRY
(COUNTRYCODE VARCHAR2 NOT NULL ENABLE,
COUNTRYNAME VARCHAR2 NOT NULL ENABLE,
CONSTRAINT MYDBAT_COUNTRY_PK PRIMARY KEY (COUNTRYCODE)
CREATE TABLE MYDBAT_PERSON
(USERID VARCHAR2 NOT NULL ENABLE,
USERNAME VARCHAR2 NOT NULL ENABLE,
FIRSTNAME VARCHAR2,
LASTNAME VARCHAR2,
EMAIL VARCHAR2 NOT NULL ENABLE,
HOMECOUNTRY VARCHAR2);
CREATE TABLE MYDBAT_COUNTRY
(COUNTRYCODE VARCHAR2 NOT NULL ENABLE,
COUNTRYNAME VARCHAR2 NOT NULL ENABLE,
CONSTRAINT MYDBAT_COUNTRY_PK PRIMARY KEY (COUNTRYCODE)
The same principles as explained above for the relationship between a user and a lookup would apply when defining tables for the relationship between a user and entitlements.
For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.
Access to Oracle Support
Oracle customer access to and use of Oracle support services will be pursuant to the terms and conditions specified in their Oracle order for the applicable services.