# Granting access to system catalog views

For a source database user or destination database user, to grant the required access to system catalog views, use one of the following options:

* Grant access to `SELECT_CATALOG_ROLE`
* Grant access to the `SELECT ANY DICTIONARY` privilege
* (Not recommended) Grant access to the `ALL_*` catalog views and to selected `DBA_*` views

## Grant access to SELECT\_CATALOG\_ROLE

To grant access to `SELECT_CATALOG_ROLE`:

```
GRANT SELECT_CATALOG_ROLE TO tonic;
```

## Grant access to SELECT ANY DICTIONARY privilege

To grant access to the `SELECT ANY DICTIONARY` privilege:

```
GRANT SELECT ANY DICTIONARY TO tonic;
```

## (Not recommended) Grant access to ALL\_\* catalog views and DBA\_\* views

If you cannot use either the `SELECT_CATALOG_ROLE` or `SELECT ANY DICTIONARY` options, then the other option is to grant access to `ALL_*` catalog views and to specific `DBA_*` views.

This is not recommended. The required views might change, which would then require an update to the user configuration.

If access to `ALL_*` catalog views is granted through the `PUBLIC` user, then to grant access to the required `DBA_*` views:

```
GRANT SELECT ON DBA_DATAPUMP_JOBS TO tonic;
GRANT SELECT ON DBA_PDBS TO tonic;
GRANT SELECT ON DBA_REGISTRY_SQLPATCH TO tonic;
GRANT SELECT ON DBA_ROLES TO tonic;
GRANT SELECT ON DBA_SEGMENTS TO tonic;
GRANT SELECT ON DBA_TABLESPACES TO tonic;
```

If the `PUBLIC` user access to `ALL_*` is revoked, then to grant access to the `ALL_*` views:

```
GRANT SELECT ON ALL_EXTERNAL_TABLES TO tonic;
GRANT SELECT ON ALL_COL_PRIVS TO tonic;
GRANT SELECT ON ALL_COL_TYPES TO tonic;
GRANT SELECT ON ALL_CONS_COLUMNS TO tonic;
GRANT SELECT ON ALL_CONSTRAINTS TO tonic;
GRANT SELECT ON ALL_DB_LINKS TO tonic;
GRANT SELECT ON ALL_DEPENDENCIES TO tonic;
GRANT SELECT ON ALL_ERRORS TO tonic;
GRANT SELECT ON ALL_IND_COLUMNS TO tonic;
GRANT SELECT ON ALL_INDEXES TO tonic;
GRANT SELECT ON ALL_LOBS TO tonic;
GRANT SELECT ON ALL_MVIEW_LOGS TO tonic;
GRANT SELECT ON ALL_MVIEWS TO tonic;
GRANT SELECT ON ALL_NESTED_TABLES TO tonic;
GRANT SELECT ON ALL_OBJECTS TO tonic;
GRANT SELECT ON ALL_PART_TABLES TO tonic;
GRANT SELECT ON ALL_PROCEDURES TO tonic;
GRANT SELECT ON ALL_QUEUE_TABLES TO tonic;
GRANT SELECT ON ALL_QUEUES TO tonic;
GRANT SELECT ON ALL_SCHEDULER_JOBS TO tonic;
GRANT SELECT ON ALL_SCHEDULER_PROGRAMS TO tonic;
GRANT SELECT ON ALL_SEQUENCES TO tonic;
GRANT SELECT ON ALL_SYNONYMS TO tonic;
GRANT SELECT ON ALL_TAB_COLUMNS TO tonic;
GRANT SELECT ON ALL_TAB_IDENTITY_COLS TO tonic;
GRANT SELECT ON ALL_TAB_PRIVS TO tonic;
GRANT SELECT ON ALL_TABLES TO tonic;
GRANT SELECT ON ALL_TRIGGERS TO tonic;
GRANT SELECT ON ALL_TYPE_ATTRS TO tonic;
GRANT SELECT ON ALL_TYPES TO tonic;
GRANT SELECT ON ALL_USERS TO tonic;
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tonic.ai/app/setting-up-your-database/oracle/oracle-before-workspace-creation/oracle-database-users/oracle-database-user-sys-catalog.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
