Dprivall (dprivall.sql)
What This Script Does
Section titled “What This Script Does”This script provides a unified view of all privileges granted to users and roles, including system privileges, role grants, and object privileges. Essential for comprehensive security audits and access reviews.
The Script
Section titled “The Script”col privilege format a100col grantee format a30
define grantee = &grantee
select grantee, privilege from sys.dba_sys_privs where grantee like nvl(upper('&grantee'),'%')UNION ALLselect grantee, granted_role privilege from sys.dba_role_privs where grantee like nvl(upper('&grantee'),'%')UNION ALLselect grantee, privilege from (select grantee, 'grantor = '||grantor||', owner = '|| owner ||', table_name = '||table_name||', privilege = '||privilege privilege from sys.dba_tab_privs where grantee like nvl(upper('&grantee'),'%'))order by grantee, privilege/
undefine grantee
Parameters
Section titled “Parameters”The script prompts for:
- &User - or role to analyze (use % for all)
-- Basic usage@dprivall.sql
-- When prompted, enter:-- grantee: User or role to analyze (use % for all)
Sample Output
Section titled “Sample Output”GRANTEE PRIVILEGE------------------------------ ----------------------------------------------------------------------------------------------------HR_ADMIN CREATE SESSIONHR_ADMIN CREATE TABLEHR_ADMIN CREATE VIEWHR_ADMIN HR_ROLEHR_ADMIN RESOURCEHR_ADMIN SELECT ANY DICTIONARYHR_ADMIN grantor = HR, owner = HR, table_name = EMPLOYEES, privilege = DELETEHR_ADMIN grantor = HR, owner = HR, table_name = EMPLOYEES, privilege = INSERTHR_ADMIN grantor = HR, owner = HR, table_name = EMPLOYEES, privilege = SELECTHR_ADMIN grantor = HR, owner = HR, table_name = EMPLOYEES, privilege = UPDATEHR_ADMIN grantor = HR, owner = HR, table_name = DEPARTMENTS, privilege = SELECTHR_ADMIN grantor = SYS, owner = SYS, table_name = DBA_USERS, privilege = SELECT