SQL Navigator
When attempting to grant access to other users objects without granting the Select_Catalog_Role or Select_Any_Table privilege.
1. Create a role called QUEST_NAV_VIEWS
2. Login as sys and grant the following view to QUEST_NAV_VIEWS
grant SELECT on VIEW SYS.DBA_ALL_TABLES to QUEST_NAV_VIEWS
grant SELECT on VIEW SYS.DBA_ERRORS to QUEST_NAV_VIEWS
grant SELECT on VIEW SYS.DBA_OBJECTS to QUEST_NAV_VIEWS
grant SELECT on VIEW SYS.DBA_OBJECT_TABLES to QUEST_NAV_VIEWS
grant SELECT on VIEW SYS.DBA_SOURCE to QUEST_NAV_VIEWS
grant SELECT on VIEW SYS.DBA_TABLES to QUEST_NAV_VIEWS
grant SELECT on VIEW SYS.DBA_TRIGGERS to QUEST_NAV_VIEWS
grant SELECT on VIEW SYS.DBA_TRIGGER_COLS to QUEST_NAV_VIEWS
grant SELECT on VIEW SYS.DBA_USERS to QUEST_NAV_VIEWS
3. Grant the QUEST_NAV_VIEWS role to the user
grant QUEST_NAV_VIEWS to schema_name
If you want the user to view indexes, constraints, etc., then please make sure to explicitly grant those views to the QUEST_NAV_VIEWS role. You can find out which view SQL Navigator is querying from by going to View|Preferences|Session|Trace and checking the enable option. Once you finish tracing, SQL Navigator should create a navlogxxxx.log file, located in your SQL Navigator directory, which you can use to see what views it is querying from.