

# Concessão de privilégios a usuários não mestres
<a name="Appendix.Oracle.CommonDBATasks.PermissionsNonMasters"></a>

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 TO user1;
```

É 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 TO user1;
```

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 USER user1 IDENTIFIED BY PASSWORD;
GRANT CREATE SESSION TO user1;
GRANT SELECT ON sh.sales TO user1;
```