2010-03-10 15 views
7

Uzun zamandır oluşturulmuş bir ev sahibi Oracle rolüm var:Bir Oracle rolüne verilen ayrıcalıkların listesini nasıl sıralayabilirim?

create role MyRole; 

Bazı tablolardan ve görünümlerden seçme, ekleme, güncelleme ve silme olanağı verildi.

grant select on sometable to MyRole; 
grant insert on sometable to MyRole; 
grant select on someothertable to MyRole; 
-- etc. 

Şimdi rol için verilen özel ayrıcalık listesini nasıl sıralayabilirim? Belirli tabloları ve bu rolün her bir tabloya ilişkin sahip olduğu hakları keşfetmeye ilgi duyuyorum. Bu bilgiyi nasıl kurtarabilirim?

cevap

8

Sadece veri sözlüğü ROLE_TAB_PRIVS'dan arama yapabilirsiniz. Bunu beğendim mi?

SELECT * ROLE_TAB_PRIVS'DEN ROLE = 'MyRole';

3

bu iyi çalışıyor:

SELECT DBA_TAB_PRIVS.GRANTEE, TABLE_NAME, PRIVILEGE,DBA_ROLE_PRIVS.GRANTEE 
FROM DBA_TAB_PRIVS, DBA_ROLE_PRIVS 
WHERE DBA_TAB_PRIVS.GRANTEE = DBA_ROLE_PRIVS.GRANTED_ROLE 
AND DBA_TAB_PRIVS.GRANTEE='<ENTER GROUP ROLE HERE>' 
AND DBA_ROLE_PRIVS.GRANTEE = '<ENTER ROLE HERE>' 
ORDER BY DBA_ROLE_PRIVS.GRANTEE