How To Use DBMS_PRIVILEGE_CAPTURE To Capture Privs In Oracle 12c
What is DBMS_PRIVILEGE_CAPTURE ?
oracle configurationintermediate
by OracleDba
20 views
What is DBMS_PRIVILEGE_CAPTURE ?
12345678910111213141516171819
SQL> create user c##test identified by test ;
User created.
SQL> Grant create session to C##TEST;
Grant succeeded.
SQL> grant select any table to C##TEST;
Grant succeeded.
SQL> exec SYS.DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE ( -
name => 'test_capture', -
description => 'Capture_all_thing', -
type => dbms_privilege_capture.g_database)> > >
PL/SQL procedure successfully completed.123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
SQL> exec SYS.DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTURE (name => 'test_capture');
PL/SQL procedure successfully completed.
SQL> conn c##test/test
Connected.
SQL> select count(*) from c##test.t1;
COUNT(*)
----------
4
SQL> select * from c##test.t1;
N
----------
2
2
2
2
SQL> CONN / AS SYSDBA
SQL> exec SYS.DBMS_PRIVILEGE_CAPTURE.DISABLE_CAPTURE (name => 'test_capture');
PL/SQL procedure successfully completed.
SQL> exec SYS.DBMS_PRIVILEGE_CAPTURE.GENERATE_RESULT (name => 'test_capture');
PL/SQL procedure successfully completed.
NOTE: If you try to generate the result before disabling the capture you will get below error.
SQL> exec SYS.DBMS_PRIVILEGE_CAPTURE.GENERATE_RESULT (name => 'test_capture');
BEGIN SYS.DBMS_PRIVILEGE_CAPTURE.GENERATE_RESULT (name => 'test_capture'); END;
*
ERROR at line 1:
ORA-47932: Privilege capture test_capture is still enabled.
ORA-06512: at "SYS.DBMS_PRIVILEGE_CAPTURE", line 58
ORA-06512: at line 1
SQL> ;
1 SELECT USERNAME, SYS_PRIV
2 FROM DBA_USED_SYSPRIVS
3* WHERE USERNAME='C##TEST';
USERNAME SYS_PRIV
------------ ----------------------------------------
C##TEST SELECT ANY TABLE
C##TEST CREATE SESSION
SQL> COLUMN name FORMAT A15
COLUMN roles FORMAT A20
COLUMN context FORMAT A30
SET LINESIZE 100
SELECT name,
type,
enabled,
roles,
context
FROM dba_priv_captures
ORDER BY name;SQL> SQL> SQL> SQL> SQL> 2 3 4 5 6 7
NAME TYPE E ROLES CONTEXT
--------------- ---------------- - -------------------- ------------------------------
test_capture DATABASE N1
SQL> exec dbms_privilege_capture.drop_capture('test_capture');Please to add comments
No comments yet. Be the first to comment!