2010-03-10 24 views
7

Tôi có một vai trò Oracle cây nhà lá vườn được tạo ra từ lâu:Làm cách nào để liệt kê danh sách các đặc quyền được cấp cho vai trò của Oracle?

create role MyRole; 

Nó đã được cấp khả năng lựa chọn, chèn, cập nhật và xóa từ một số bảng và quan điểm.

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

Bây giờ tôi có thể liệt kê danh sách các đặc quyền cụ thể được cấp cho vai trò này không? Tôi quan tâm đến việc khám phá các bảng cụ thể và các quyền mà vai trò này có liên quan đến mỗi bảng. Làm thế nào tôi có thể phục hồi thông tin này?

Trả lời

8

Bạn chỉ có thể tìm kiếm từ từ điển dữ liệu ROLE_TAB_PRIVS. Và làm như thế này

SELECT * FROM ROLE_TAB_PRIVS WHERE ROLE = 'MyRole';

3

này hoạt động tốt:

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 
Các vấn đề liên quan