Sometime, DBA requires to create a readonly schema to allow non-DBA users to monitor the database or application user wanted to only view the application data . When we create readonly user, it should have an ability to access all the DB dictionary includes v$ tables. We can also grant only select access to the application schema tables.Here is the steps to setup the readonly schema. The below steps needs to be done in DBA users.
create user readonly
identified by readonly;
grant create synonym,
select any dictionary to readonly;
create the synonym in readonly schema for application tables.
Now if we connect readonly schema, you can see application tables as well as all the database dictionary tables. You can also monitor the database. If you are using any version below oracle9i, you need to grant SELECT ANY CATALOG role instead of SELECT ANY DICTIONARY privilege.