sql >> Database >  >> RDS >> Oracle

Hoe controleer ik de privileges (DDL,DML,DCL) op objecten die zijn toegewezen aan Schema, Rollen in Oracle Database?

Een korte uitleg over het voorvoegsel van de weergave van een datawoordenboek:

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

Nuttige weergave-informatie:

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.

Meer weten over PRIVS weergaven bezoek hier .

Vragen:

-Over gebruikers-/schemastatus

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

-Controleer de toegewezen rollen aan rol en schema

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

-Controleer de rolrechten

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');

-Controleer privileges van toegekende objecten voor schema

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');

Bedankt!




  1. MySQL krijgt een willekeurige waarde tussen twee waarden

  2. Hoe mysql verbinden met swift?

  3. Tekens één voor één afdrukken uit een string (VARCHAR2) oracle sql zonder plsql te gebruiken en ook zonder dual

  4. tuple gelijktijdig bijgewerkt bij het maken van functies in postgresql / PL/pgSQL