Attribution de privilèges à des utilisateurs non-maîtres
Vous pouvez accorder des privilèges select pour de nombreux objets dans le schéma SYS grâce au rôle SELECT_CATALOG_ROLE. Le rôle SELECT_CATALOG_ROLE accorde aux utilisateurs des privilèges SELECT sur les vues du dictionnaire de données. L'exemple suivant accorde le rôle SELECT_CATALOG_ROLE à un utilisateur nommé user1.
GRANT SELECT_CATALOG_ROLE TOuser1;
Vous pouvez accorder des privilèges EXECUTE pour de nombreux objets dans le schéma SYS grâce au rôle EXECUTE_CATALOG_ROLE. Le rôle EXECUTE_CATALOG_ROLE accorde aux utilisateurs des privilèges EXECUTE pour les packages et les procédures du dictionnaire de données. L'exemple suivant accorde le rôle EXECUTE_CATALOG_ROLE à un utilisateur nommé user1.
GRANT EXECUTE_CATALOG_ROLE TOuser1;
L'exemple suivant obtient les autorisations permises par les rôles SELECT_CATALOG_ROLE et EXECUTE_CATALOG_ROLE.
SELECT * FROM ROLE_TAB_PRIVS WHERE ROLE IN ('SELECT_CATALOG_ROLE','EXECUTE_CATALOG_ROLE') ORDER BY ROLE, TABLE_NAME ASC;
L'exemple suivant crée un utilisateur non maître nommé user1, accorde le privilège CREATE SESSION, puis accorde le privilège SELECT sur une base de données nommée sh.sales.
CREATE USERuser1IDENTIFIED BY PASSWORD; GRANT CREATE SESSION TOuser1; GRANT SELECT ONsh.salesTOuser1;