Concessão de privilégios a usuários não mestres
Você pode conceder privilégios de seleção para muitos objetos no esquema SYS, usando a função SELECT_CATALOG_ROLE. A função SELECT_CATALOG_ROLE concede aos usuários privilégios SELECT em visualizações de dicionários de dados. O exemplo a seguir concede a função SELECT_CATALOG_ROLE a um usuário chamado user1.
GRANT SELECT_CATALOG_ROLE TOuser1;
É possível conceder privilégios EXECUTE para muitos objetos no esquema SYS usando a função EXECUTE_CATALOG_ROLE. A função EXECUTE_CATALOG_ROLE concede aos usuários privilégios EXECUTE para pacotes e procedimentos no dicionário de dados. O exemplo a seguir concede a função EXECUTE_CATALOG_ROLE a um usuário chamado user1.
GRANT EXECUTE_CATALOG_ROLE TOuser1;
O exemplo a seguir obtém as permissões permitidas pelas funções SELECT_CATALOG_ROLE e EXECUTE_CATALOG_ROLE.
SELECT * FROM ROLE_TAB_PRIVS WHERE ROLE IN ('SELECT_CATALOG_ROLE','EXECUTE_CATALOG_ROLE') ORDER BY ROLE, TABLE_NAME ASC;
O exemplo a seguir cria um usuário não mestre chamado user1, concede o privilégio CREATE SESSION e concede o privilégio SELECT em um banco de dados chamado sh.sales.
CREATE USERuser1IDENTIFIED BY PASSWORD; GRANT CREATE SESSION TOuser1; GRANT SELECT ONsh.salesTOuser1;