DBA role or SYSDBA, accounts with Oracle default passwords, and sensitive packages that PUBLIC can execute.
This integration supports self-managed Oracle Database (VM, on-premises, Exadata, OCI Base Database Service, and Oracle Database@Azure, @Google Cloud, and @AWS), Amazon RDS for Oracle, and OCI Autonomous Database. Oracle Database 19c or later is required. Pick the setup path that matches your deployment below.
What Oleria discovers
Risk signals
Oleria reports these risks for Oracle Database:- Oracle DBA role
- Administrative privilege in the password file -
SYSDBA,SYSOPER,SYSASM,SYSBACKUP,SYSDG,SYSKM, orSYSRAC. - Account with an Oracle default password
- Privilege-escalation system privilege - for example
GRANT ANY ROLE,ALTER USER,BECOME USER,EXECUTE ANY PROCEDURE, orALTER SYSTEM. - ANY data privilege - for example
SELECT ANY TABLE,UPDATE ANY TABLE,EXEMPT ACCESS POLICY, orSELECT ANY DICTIONARY. - Privilege held WITH ADMIN / GRANT OPTION
- Explicit grant to PUBLIC
- PUBLIC can execute a sensitive Oracle package (CIS) - for example
UTL_FILE,UTL_HTTP,DBMS_SCHEDULER, orDBMS_SQL. - Public database link with stored credentials
- Password never expires
- No account lockout
- No password complexity check
- Password expired
- Insecure initialization parameter -
REMOTE_OS_AUTHENT=TRUE,O7_DICTIONARY_ACCESSIBILITY=TRUE,SEC_CASE_SENSITIVE_LOGON=FALSE, orAUDIT_SYS_OPERATIONS=FALSE(AUDIT_SYS_OPERATIONSis checked on self-managed databases only).
The connector user’s own profile (below) sets an unlimited password lifetime and no lockout, so Oleria reports Password never expires, No account lockout, and possibly No password complexity check on that user. Oleria doesn’t report the privileges you grant the connector user for remediation actions as risks.
Prerequisites
- A dedicated database user for Oleria, with the read privileges listed for your deployment below. You can’t use
SYS, because it always signs in asSYSDBA. - Network access from Oleria to your database listener on the configured port. See Network and encryption.
- Optional: the
AUDIT_VIEWERrole and audit policies, if you want Oleria to show activity. See Enable audit policies for activity. - Optional: additional privileges, if you also want to run remediation actions. See Remediation actions.
Before it saves the integration, Oleria checks that the connector user can read every required data dictionary view (users, roles, privileges, objects, proxies, profiles, procedures, database links, and directories). If it can’t read one, Oleria refuses the connection with an error that names the missing grant. Optional views aren’t checked; see Known limitations.
Choose what one integration covers
The Service Name you connect to decides the scope:- A pluggable database (PDB) or non-CDB service - Oleria covers that database. This is the only option for Amazon RDS for Oracle and OCI Autonomous Database.
- The root service of a self-managed container database (
CDB$ROOT) - Oleria covers the root and every open PDB with one integration. This requires a common user (C##prefix) withCONTAINER_DATA = ALL. Without anyCONTAINER_DATAsetting, Oracle silently shows only the root, so Oleria refuses the connection.
Set up the integration
- Self-managed
- Amazon RDS for Oracle
- OCI Autonomous Database
1
Create a connector user in a PDB or non-CDB
Connect to the pluggable database (or the non-CDB) as an administrator and run:
CREATE SESSIONlets the user sign in.SELECT ANY DICTIONARYlets Oleria read users, roles, and grants. It doesn’t expose password hashes.- The dedicated profile keeps the connector working. Under the
DEFAULTprofile, the password expires after 180 days and 10 failed sign-ins lock the user. If your policy requires a finiteFAILED_LOGIN_ATTEMPTS, keepPASSWORD_LOCK_TIMEshort, for example1/24(one hour), and rotate the password yourself.
2
Create a common connector user in the root (optional)
Connect to Set
CDB$ROOT as an administrator and run:CONTAINER_DATA = ALL. If the user has no CONTAINER_DATA setting, Oleria refuses the connection. If it lists specific containers, Oleria covers only those.3
Grant access to the audit trail (optional)
To show activity, grant the audit viewer role:For a common user in the root, use
GRANT AUDIT_VIEWER TO c##oleria CONTAINER = ALL;. Then enable the audit policies in Enable audit policies for activity.4
Choose the encryption
Decide how Oleria encrypts the connection. See Network and encryption. If your listener has a TLS (TCPS) endpoint with a certificate from a publicly trusted certificate authority, use Verified TLS.
Network and encryption
Oleria connects directly to your database listener. Your network must allow connections from Oleria to the listener’s host and port.- Host must be a host name or IP address. Oleria refuses loopback, link-local, and cloud metadata addresses.
- If the listener redirects the connection, for example a RAC SCAN listener, Oleria follows up to four redirects. With TLS, Oleria refuses a redirect to a non-TLS endpoint.
With Native network encryption over TCP, Oleria refuses a server that turns native encryption off, for example with
SQLNET.ENCRYPTION_SERVER = REJECTED. After sign-in, Oleria also requires AES encryption and SHA-2 integrity. If the connection is refused for weak algorithms, set SQLNET.ENCRYPTION_TYPES_SERVER to AES algorithms and SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER to SHA-2 algorithms in the server’s sqlnet.ora.
To connect with Verified TLS to a host name that the certificate doesn’t carry, such as an IP address, alias, or load balancer name, enter the certificate’s full subject in Server Certificate DN (optional). Oleria then matches the subject instead of the host name, and still verifies the certificate chain.
Enable audit policies for activity (optional)
Complete this section only if you want Oleria to show activity. Oleria reads the unified audit trail, which records only what an enabled audit policy audits. A default database records failed sign-ins and only some grants and revokes. It doesn’t record successful sign-ins.- PDB, non-CDB, RDS, or Autonomous
- CDB root
In the database the integration connects to, run:
ORA_ACCOUNT_MGMTrecords user creation, changes, and deletion, and role and privilege grants and revokes.oleria_logonsrecords successful and failed sign-ins, and sign-outs, of every user except the connector user.
ORA_SECURECONFIG policy enabled. Enable each policy for all users, as shown. A policy enabled only BY certain users, with a WHEN condition, or EXCEPT users other than the connector user records only part of the activity.
If the connector user can’t read the audit trail, the sync continues without activity. It doesn’t fail.
Connect Oracle Database to Oleria
1
Open the integration
Sign in to your Oleria workspace and navigate to Integrations -> Oracle Database -> Connect.
2
Complete the connection form
Select your Deployment first. The form updates to show only the fields that deployment needs.
- Self-managed
- Amazon RDS for Oracle
- OCI Autonomous Database
3
Complete the connection
Select Authenticate. Oleria signs in, detects the deployment and scope, and checks that the connector user can read every required view. Oleria then saves the integration and begins the first sync.
After you save the integration, you can change only the Password and the Wallet (cwallet.sso, base64, optional). Leave either empty to keep the stored value. To change any other field, connect a new integration.
Verify the integration
Confirm Oracle Database appears on the Connected tab of your Oleria Integrations page. After the first sync completes, you can review the discovered accounts, roles, resources, access grants, risks, and activity in your Oleria workspace. If the connection is refused with an error that names a missing grant, grant it to the connector user and try again.After a failed sign-in, Oleria waits up to 10 minutes before it tries the same password again, so repeated retries can’t lock the connector user. Updating the password in Oleria, or testing the connection again, retries immediately.
Remediation actions
Oleria validates the connector user’s privileges before it runs each action, and reads the current state first. If nothing needs to change, Oleria records the action as a no-op and never reverts it. Lock Oracle User Account also requires approval in Oleria.
Grant the privileges for the actions you want to use:
- PDB, non-CDB, or Autonomous
- Amazon RDS for Oracle
- CDB root
Without
ALTER SYSTEM (or, on RDS, EXECUTE on rdsadmin.rdsadmin_util), the lock still succeeds, but the action output says that open sessions weren’t ended. Those sessions keep access until they disconnect.- the target is the connector user itself
- the target is an Oracle-maintained user, a cloud-maintained user on Autonomous Database, or
RDSADMINorOPS$RDSDBon Amazon RDS - for a revoke, the role was granted commonly from
CDB$ROOT(CONTAINER = ALL) and the integration connects to a PDB. Revoke it inCDB$ROOTwithCONTAINER = ALLinstead. - for a lock or unlock, the target is a common user and the integration connects to a PDB. Common users can be locked and unlocked only through a
CDB$ROOTintegration. - the database is open read-only, such as a Data Guard standby. Connect the integration to the primary database.
- Database Vault blocks the statement. Authorize the connector user, for example with the
DV_ACCTMGRrole or a realm or command rule authorization.
If a user was temporarily locked out by failed sign-ins (
LOCKED(TIMED)) before a lock action, the revert leaves the user permanently locked, because Oracle can’t re-create a timed lockout. The revert output says so.Known limitations
- No account creation or deletion: Oleria grants and revokes roles, and locks and unlocks users. It can’t create, drop, or change the password of a database user.
- Unified auditing only: Oleria reads the unified audit trail. Traditional auditing (
AUDIT_TRAIL=DB,DBA_AUDIT_TRAIL) and fine-grained auditing aren’t read. If your database writes only traditional audit records, Oleria shows no activity. - Statement text is redacted: Oleria removes literals, numbers, email addresses, and comments from audited statements, and never reads bind values. Oracle already masks passwords in audited statements.
- Synthetic email: Most Oracle users have no email address. Oleria synthesizes one from the user name, container or database name, and host, which may not match a real address. Directory-mapped users with a user principal name use that address instead.
- Group membership: Members of directory groups behind global users and roles come from your Microsoft Entra ID, Active Directory, or other directory integration, not from Oracle.
- Restrictive security features aren’t evaluated: Database Vault, Oracle Label Security, Real Application Security, Data Redaction, and Virtual Private Database policies are recorded as labels, not evaluated. Oleria may show more access than these features allow.
- Access outside the database isn’t visible: Operating system users who sign in as
SYSDBAthrough OS groups (/ as sysdba) aren’t in the data dictionary. AWS and OCI identities that can reset the master orADMINpassword are visible only through your cloud integration. - Not covered: Scheduler jobs and credentials, and roles granted to PL/SQL code (code-based access control).
- Partial reads don’t fail the sync: If the connector user can’t read an optional view, such as the password file users, default passwords, Database Vault, Data Redaction, or VPD views, Oleria syncs the rest and records what it couldn’t collect.
- Containers that aren’t open: In a
CDB$ROOTintegration, PDBs that aren’t open are listed as skipped and aren’t scanned. Seed PDBs aren’t shown. - Very large databases: One integration handles about 8 to 10 million dictionary objects. For a larger container database, connect each PDB as its own integration.
- Connector authentication: The connector user signs in with a password. Kerberos, RADIUS, token-based authentication, and Secure External Password Store wallets aren’t supported for the connector user.

