denrepo

OracleSecurity & users

Who has DBA, SYSDBA and powerful system privileges

Non-Oracle accounts and roles holding the DBA role or high-risk ANY privileges, then everyone in the password file. Worth reviewing every audit cycle.

12c+

Not yet verified. How scripts are tested

ora-powerful.sql
1CLEAR COLUMNS2SET LINESIZE 140 PAGESIZE 200 TRIMOUT ON TAB OFF3COLUMN grantee      FORMAT A254COLUMN privilege    FORMAT A255COLUMN kind         FORMAT A126COLUMN admin_option HEADING "ADMIN" FORMAT A57COLUMN username     FORMAT A258COLUMN sysdba       FORMAT A69COLUMN sysoper      FORMAT A710COLUMN sysbackup    FORMAT A911COLUMN sysdg        FORMAT A512COLUMN syskm        FORMAT A513 14SELECT grantee, granted_role AS privilege, 'ROLE' AS kind, admin_option15FROM dba_role_privs16WHERE granted_role = 'DBA'17  AND grantee NOT IN (SELECT username FROM dba_users WHERE oracle_maintained = 'Y')18UNION ALL19SELECT grantee, privilege, 'SYSTEM PRIV', admin_option20FROM dba_sys_privs21WHERE privilege IN ('ALTER SYSTEM', 'ALTER USER', 'BECOME USER', 'GRANT ANY PRIVILEGE',22                    'GRANT ANY ROLE', 'DROP ANY TABLE', 'SELECT ANY TABLE',23                    'CREATE ANY PROCEDURE', 'EXECUTE ANY PROCEDURE')24  AND grantee NOT IN (SELECT username FROM dba_users WHERE oracle_maintained = 'Y')25  AND grantee NOT IN (SELECT role FROM dba_roles WHERE oracle_maintained = 'Y')26ORDER BY 1, 2;27 28SELECT username, sysdba, sysoper, sysbackup, sysdg, syskm29FROM v$pwfile_users30ORDER BY username;

Save it as ora-powerful.sql and run it with SQL> @ora-powerful.

Open in denrepo

Helps with

More Oracle scripts: Security & users