2 votes

Comment vérifier les privilèges (DDL, DML, DCL) sur les objets attribués à Schema, Roles dans une base de données oracle ?

La plupart du temps, nous nous débattons avec des choses stupides pour obtenir le détail des privilèges sur le schéma, le rôle et leurs objets et nous essayons de trouver un moyen facile d'obtenir tous les détails à ce sujet ainsi que le code de pseudo requêtes pour générer des déclarations de subvention en vrac pour une exécution ultérieure. Nous sommes donc ici pour l'obtenir.

6voto

Rajesh Chaudhary Points 108

Un petit mot sur le dictionnaire de données et le préfixe de vue :

ALL_    -Describes PUBLIC Object grants.
USER_   -Describes current user Object grants.
DBA_    -Describes all object grants in the database.

Informations utiles sur les vues :

ROLE_ROLE_PRIVS     -describes the roles granted to other roles. 
ROLE_SYS_PRIVS      -describes system privileges granted to roles.
ROLE_TAB_PRIVS      -describes table privileges granted to roles. 
DBA_ROLE_PRIVS      -describes the roles granted to all users and roles in the database.
DBA_SYS_PRIVS       -describes system privileges granted to users and roles.
DBA_TAB_PRIVS       -describes all object grants in the database.
DBA_COL_PRIVS       -describes all column object grants in the database.

Pour en savoir plus sur PRIVS visite de vues aquí .

Requêtes :

-Sur le statut de l'utilisateur/du schéma

select username,account_status, created from dba_users where username in ('SCOTT');

-Vérifier les rôles attribués au rôle et au schéma.

select * from DBA_ROLE_PRIVS where grantee in ('SCOTT','RESOURCE');

-Vérifier les privilèges du rôle

select * from ROLE_ROLE_PRIVS where role in ('RESOURCE','CONNECT');    
select * from ROLE_TAB_PRIVS  where role in ('RESOURCE','CONNECT');
select * from ROLE_SYS_PRIVS  where role in ('RESOURCE','CONNECT');

Pseudo Code:
select 'grant '||privilege||' to ROLE_SLAVE;' from ROLE_SYS_PRIVS where role in ('RESOURCE','CONNECT');
select 'grant '||privilege||' to ROLE_SLAVE;' from ROLE_TAB_PRIVS where role in ('RESOURCE','CONNECT');

-Vérification des privilèges des objets accordés pour le schéma

select * from DBA_SYS_PRIVS where grantee in ('SCOTT');
select * from DBA_TAB_PRIVS where grantee in ('SCOTT');
select * from DBA_COL_PRIVS where grantee in ('SCOTT');

Pseudo Code: 
select 'grant '||privilege||' to SCOTT_SLAVE;' from DBA_SYS_PRIVS where grantee in ('SCOTT');
select 'grant '||privilege||' on '||owner||'.'||table_name||' to SCOTT_SLAVE;' from DBA_TAB_PRIVS where grantee in ('SCOTT');
select 'grant '||privilege||' ('||column_name||') '||' on '||owner||'.'||table_name||' to SCOTT_SLAVE;' from DBA_COL_PRIVS where grantee in ('SCOTT');

Merci !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X