Skip to main content

Generic Oracle Setup Guide

This guide explains the required Oracle permissions to enable OLake to perform full refresh and incremental sync. It applies to Oracle databases running on any infrastructure.

Oracle Permissions Required

To allow OLake to perform operations, the following grants must be applied to the user used in your source configuration:

PrivilegePurposeGrant QueryError Without It
CREATE SESSIONFundamental login abilityGRANT CREATE SESSION TO <username>;ORA-01045: user <username> lacks CREATE SESSION privilege; logon denied
EXECUTE ON DBMS_FLASHBACKRequired to fetch SCNGRANT EXECUTE ON DBMS_FLASHBACK TO <username>;ORA-00904: "SYS"."DBMS_FLASHBACK": invalid identifier
SELECT ON <owner>.<table>Read data from source tableGRANT SELECT ON <table_owner>.<table_name> TO <username>;ORA-00942: table or view does not exist
FLASHBACK ON <owner>.<table>Perform Flashback AS OF queries on the tableGRANT FLASHBACK ON <table_owner>.<table_name> TO <username>;ORA-01031: insufficient privileges

Where and Why Each Privilege is Needed

1. CREATE SESSION

  • Use: Allows the Oracle user to connect to the database
  • Without this: The connection cannot be established.

2. EXECUTE ON DBMS_FLASHBACK

  • Use: To run DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER, which is used to fetch the current SCN during backfill.
  • Without this: Current user will be unable to retrieve the SCN.

3. SELECT ON <table>

  • Use: Enables read access to the specified table(s) for the Oracle user.
  • Without this: User will be unable to discover or read from the table during backfill or incremental sync.

4. FLASHBACK ON <table>

  • Use: Required for queries like SELECT * FROM table AS OF SCN <scn> during chunk iteration.
  • Without this: Flashback queries will fail for that table.

How to Check Permissions

Use the following queries to verify granted privileges:

-- List system-level privileges granted to your session
SELECT * FROM SESSION_PRIVS;

-- List all the object-level privileges which the current user has been granted
SELECT * FROM USER_TAB_PRIVS;

Need Assistance?

If you have any questions or uncertainties about setting up OLake, contributing to the project, or troubleshooting any issues, we’re here to help. You can:

  • Email Support: Reach out to our team at hello@olake.io for prompt assistance.
  • Join our Slack Community: where we discuss future roadmaps, discuss bugs, help folks to debug issues they are facing and more.
  • Schedule a Call: If you prefer a one-on-one conversation, schedule a call with our CTO and team.

Your success with OLake is our priority. Don’t hesitate to contact us if you need any help or further clarification!