Oracle
Sifflet monitors the health and quality of the data in your Oracle databases, from table updates down to individual field values and business metrics. Sifflet catalogs the tables and views of the schemas you select, so you can monitor them and see how an incident on your production data affects the downstream assets of your other integrations.
To learn what Sifflet imports from Oracle, see Oracle Collected Data.
Permissions Required
Sifflet uses a dedicated Oracle database user that authenticates with a password. Sifflet only needs read access: it reads metadata about your schemas and tables, and runs read-only SELECT queries to compute monitors.
| Permission | Used for | Required |
|---|---|---|
CREATE SESSION | Connect to the database | Yes |
SELECT ANY TABLE | List the tables and views of the monitored schemas, run monitors and data preview | Yes |
SELECT_CATALOG_ROLE | Read the DDL of tables, views, and materialized views with DBMS_METADATA.GET_DDL | Optional (DDL in the Data Catalog) |
SELECT ANY DICTIONARY | Not used today: read-only access to the data dictionary, so that future features using other dictionary views don't need new grants | Optional (recommended) |
SELECT ANY TABLE gives read access to the tables of all schemas. To limit Sifflet to the monitored schemas, grant SELECT on each of their tables and views instead: in that case, grant access again to the tables created later.
Sifflet's monitor queries run on your database and consume its resources. Each query starts with a SQL comment containing "app": "Sifflet" and the ID of the monitor, so you can identify Sifflet's queries.
Requirements
Required Roles for Setup
- In Oracle: a user that can create users and grant the system privileges and role above (for example, a user with the
DBArole). In a multitenant database, connect to the pluggable database (PDB) that Sifflet monitors to create a local user. - In Sifflet: the Admin system role to create the credential, and the Admin or System Editor system role to create the source. See Access Control.
Supported Versions and Editions
- Sifflet connects to Oracle Database with username and password authentication, using a database service name. Other authentication methods, such as Kerberos or certificates (wallets), are not supported.
Network Access
- Default: Sifflet connects to your database over the internet, so its listener host and port must be reachable from the public internet.
- IP allowlisting: you can restrict inbound traffic to your database (firewall rules, cloud security groups, Oracle Net valid node checking) to the IP addresses of your Sifflet instance, listed in Settings > Integration Preferences.
- Private networks: the Sifflet Agent supports Oracle: deploy it in your private network so that your database doesn't need to be exposed to the internet.
Connect Sifflet to Oracle
Step 1: Create a Database User in Oracle
-
Connect to your database (the PDB, in a multitenant database) as a user that has the rights listed in Required Roles for Setup.
-
Create the Sifflet user and grant it the required privileges. Replace
<PASSWORD>with a strong password. You can choose another user name thanSIFFLET_USER: use it consistently in all the following scripts.CREATE USER SIFFLET_USER IDENTIFIED BY "<PASSWORD>"; GRANT CREATE SESSION TO SIFFLET_USER; GRANT SELECT ANY TABLE TO SIFFLET_USER; -
Optional (DDL in the Data Catalog): let Sifflet read the DDL of your tables and views.
GRANT SELECT_CATALOG_ROLE TO SIFFLET_USER; -
Optional (recommended, future features): grant read-only access to the data dictionary. Sifflet doesn't use this privilege today: granting it now avoids new grants when Sifflet starts using other dictionary views.
GRANT SELECT ANY DICTIONARY TO SIFFLET_USER;
Keep the user name and password: you need them in step 2.
Step 2: Add the Oracle Source in Sifflet
-
Create the credential: in Integrations > Credentials, click New credentials, enter a Credential name, and paste the following JSON in the Credential field, with the user name and password from step 1:
{ "user": "SIFFLET_USER", "password": "<PASSWORD>" } -
Create the source: in Integrations > Sources, click New source, select Oracle, and fill in the form:
Field Description Example Source name The name of the source in Sifflet Oracle productionHost The host name or IP address of your Oracle listener, without protocol or port db.example.comPort The port of your Oracle listener (default 1521)1521Database The service name of your database (not the SID) ORCLPDB1Use Sifflet Agent Only if you use the Sifflet Agent: check it so that the Agent connects to the database. This option is visible when the Agent is turned on for your Sifflet instance. - Credentials The credential created above oracle-productionUse the same host as the other tools that connect to this database (BI tools, dbt, pipelines): Sifflet matches the host, port, and service name to link their assets in lineage.
-
Select the scope: click Load assets and select the schemas that Sifflet catalogs and monitors. Turn on Automatically include new schemas so that Sifflet also catalogs schemas created later. Create one source per database service. For more details on scope selection, refresh frequency, and scheduling, see Integrations Management.
-
Test and save: click Test to check that Sifflet can connect to the database, then click Save & Run. Sifflet starts the first metadata refresh: you can follow its status and logs in the source details (see Inspecting Source Details and Resolving Failures). Your tables and views appear in the Data Catalog once this first run completes.
Troubleshooting
The Connection Test Reports an Empty Schema
Symptom: the connection test fails with:
Error encountered, we did not find any tables for the provided schema <SCHEMA>. The schema is emptyCause: Sifflet looks for the tables of the schema in ALL_TABLES, which only lists the tables that the Sifflet user can access. Either the schema has no tables, or the Sifflet user can't read them.
Fix:
- Check that the schema contains tables.
- Check that the Sifflet user has
SELECT ANY TABLE, orSELECTon the tables of this schema (see step 1). - Run the connection test again.
Updated 5 days ago

