| General Information |
| Note |
The following is contained in the file header:
The package can be split into two packages - one intended for use by AV collectors and the one by Audit Admin.
The first 3 procedures will be mainly used by the Collectors and the rest must be executed by Audit Admins.
Alternately, wrapper packages can be written to achieve this Seperation of Duty. |
| Source |
{ORACLE_HOME}/rdbms/admin/dbmsamgt.sql |
| First Available |
11.1.0.7 |
| Constants |
| Name |
Data Type |
Value |
| Audit Tab Movement Flag |
| AUD_TAB_MOVEMENT_FLAG |
NUMBER |
25 |
| Audit Trail Types |
| AUDIT_TRAIL_AUD_STD |
NUMBER |
1 |
| AUDIT_TRAIL_FGA_STD |
NUMBER |
2 |
| AUDIT_TRAIL_OS |
NUMBER |
4 |
| AUDIT_TRAIL_XML |
NUMBER |
8 |
| Both Audit Trail Types 1 and 2 |
| AUDIT_TRAIL_DB_STD |
NUMBER |
3 |
| Both Audit Trail Types 4 and 8 |
| AUDIT_TRAIL_FILES |
NUMBER |
12 |
| All Audit Trail Types |
| AUDIT_TRAIL_ALL |
NUMBER |
15 |
| Batch Size |
| FILE_DELETE_BATCH_SIZE |
NUMBER |
26 |
| OS Audit File Configuration Parameters |
| OS_FILE_MAX_SIZE |
NUMBER |
16 |
| OS_FILE_MAX_AGE |
NUMBER |
17 |
| Property Parameters |
| CLEAN_UP_INTERVAL |
NUMBER |
21 |
| DB_AUDIT_TABLEPSACE |
NUMBER |
22 |
| DB_DELETE_BATCH_SIZE |
NUMBER |
23 |
| TRACE_LEVEL |
NUMBER |
24 |
| Values for PURGE_JOB_STATUS |
| PURGE_JOB_ENABLE |
NUMBER |
31 |
| PURGE_JOB_DISABLE |
NUMBER |
32 |
| Values for TRACE_LEVEL |
| TRACE_LEVEL_DEBUG |
PLS_INTEGER |
1 |
| TRACE_LEVEL_ERROR |
PLS_INTEGER |
2 |
|
| Dependencies |
| ALL_TAB_COLS |
DBA_USERS |
| DAM_CLEANUP_JOBS$ |
DBMS_ASSERT |
| DAM_CONFIG_PARAM$ |
DBMS_AUDIT_MGMT_LIB |
| DAM_LAST_ARCH_TS$ |
DBMS_LOCK |
| DBA_AUDIT_MGMT_CLEAN_EVENTS |
DBMS_SCHEDULER |
| DBA_AUDIT_MGMT_CLEANUP_JOBS |
DBMS_STATS |
| DBA_AUDIT_MGMT_CONFIG_PARAMS |
DUAL |
| DBA_AUDIT_MGMT_LAST_ARCH_TS |
OBJ$ |
| DBA_FREE_SPACE |
PLITBLM |
| DBA_TABLES |
V$INSTANCE |
| DBA_TABLESPACES |
V$OPTION |
| DBA_TAB_PARTITIONS |
V$INSTANCE |
|
| Security Model |
Execute is granted to the EXECUTE_CATALOG_ROLE role |
| Subprograms |
|
| |
| CLEAN_AUDIT_TRAIL |
| Deletes entries in audit trail according to the timestamp set in set_last_archive_timestamp |
dbms_audit_mgmt.clean_audit_trail(
audit_trail_type IN PLS_INTEGER,
use_last_arch_timestamp IN BOOLEAN := TRUE); |
| See IS_CLEANUP_INITIALIZED Demo Below |
| |
| CLEAR_AUDIT_TRAIL_PROPERTY |
| Clears an audit trail property |
dbms_audit_mgmt.clear_audit_trail_property(
audit_trail_type IN PLS_INTEGER,
audit_trail_property IN PLS_INTEGER,
use_default_values IN BOOLEAN := FALSE); |
DECLARE
att NUMBER := dbms_audit_mgmt.audit_trail_os;
atp NUMBER := dbms_audit_mgmt.os_file_max_age;
BEGIN
dbms_audit_mgmt.set_audit_trail_property(att, atp, 30);
dbms_audit_mgmt.clear_audit_trail_property(att, atp, TRUE);
END;
/ |
| |
| CLEAR_LAST_ARCHIVE_TIMESTAMP |
| Deletes the timestamp set by set_last_archive_timestamp |
dbms_audit_mgmt.clear_last_archive_timestamp(
audit_trail_type IN PLS_INTEGER,
rac_instance_number IN PLS_INTEGER := NULL); |
DECLARE
att NUMBER := dbms_audit_mgmt.audit_trail_os;
BEGIN
dbms_audit_mgmt.clear_last_archive_timestamp(att, 1);
dbms_audit_mgmt.clear_last_archive_timestamp(att, 2);
dbms_audit_mgmt.clear_last_archive_timestamp(att, 3);
END;
/ |
| |
| CREATE_PURGE_JOB |
| Creates a purge job for an audit trail |
dbms_audit_mgmt.create_purge_job(
audit_trail_type IN PLS_INTEGER,
audit_trail_purge_interval IN PLS_INTEGER,
audit_trail_purge_name IN VARCHAR2,
use_last_arch_timestamp IN BOOLEAN := TRUE); |
DECLARE
att NUMBER := dbms_audit_mgmt.audit_trail_aud_std;
pje NUMBER := dbms_audit_mgmt.purge_job_enable;
BEGIN
dbms_audit_mgmt.create_purge_job(att, 48, 'UW_PURGE');
dbms_audit_mgmt.set_purge_job_interval('UW_PURGE', 48);
dbms_audit_mgmt.set_purge_job_status('UW_PURGE', pje);
dbms_audit_mgmt.drop_purge_job('UW_PURGE');
END;
/ |
| |
| DEINIT_CLEANUP |
| De-Initialize DBMS_AUDIT_MGMT |
dbms_audit_mgmt.deinit_cleanup(audit_trail_type IN PLS_INTEGER); |
| See IS_CLEANUP_INITIALIZED Demos Below |
| |
| DROP_PURGE_JOB |
| Drops the purge job for an audit trail |
dbms_audit_mgmt.drop_purge_job(audit_trail_purge_name IN VARCHAR2); |
| See CREATE_PURGE_JOB Demo Above |
| |
| GET_AUDIT_COMMIT_DELAY |
| GETs the audit commit delay set in the database. The default is 5. |
dbms_audit_mgmt.get_audit_commit_delay RETURN PLS_INTEGER; |
SELECT dbms_audit_mgmt.get_audit_commit_delay
FROM dual; |
| |
| INIT_CLEANUP |
| Initializes DBMS_AUDIT_MGMT |
dbms_audit_mgmt.init_cleanup(
audit_trail_type IN PLS_INTEGER,
default_cleanup_interval IN PLS_INTEGER); |
| See IS_CLEANUP_INITIALIZED Demo Below |
| |
| IS_CLEANUP_INITIALIZED |
| Checks if Audit Cleanup is initialized for the audit trail type. |
dbms_audit_mgmt.is_cleanup_initialized(audit_trail_type IN PLS_INTEGER) RETURN BOOLEAN; |
set serveroutput on
DECLARE
att NUMBER := dbms_audit_mgmt.audit_trail_aud_std;
BEGIN
IF dbms_audit_mgmt.is_cleanup_initialized(att) THEN
dbms_audit_mgmt.set_audit_trail_location(att, 'UWDATA');
dbms_audit_mgmt.deinit_cleanup(att);
dbms_output.put_line('Cleanup Is Initialized');
ELSE
dbms_audit_mgmt.init_cleanup(att, 24);
dbms_audit_mgmt.clean_audit_trail(att, TRUE);
dbms_output.put_line('Cleanup Was Not Initialized');
END IF;
END;
/ |
| |
MOVE_DBAUDIT_TABLES (11.2.0.1)  |
| Moves DB audit tables to specified tablespace |
dbms_audit_mgmt.move_dbaudit_tables(audit_trail_tbs IN VARCHAR2 DEFAULT 'SYSAUX'); |
CREATE TABLESPACE audit_data
DATAFILE 'C:\ORACLE\PRODUCT\ORADATA\ORABASE\AUDDATA.DBF' SIZE 250M
LOGGING FORCE LOGGING ONLINE PERMANENT BLOCKSIZE 8192
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64K
SEGMENT SPACE MANAGEMENT AUTO;
exec dbms_audit_mgmt.move_dbaudit_tables('audit_data'); |
| |
| SET_AUDIT_TRAIL_LOCATION |
Sets the destination for an audit trail
Audit trail types are AUDIT_TRAIL_AUD_STD,
AUDIT_TRAIL_FGA_STD, and AUDIT_TRAIL_DB_STD |
dbms_audit_mgmt.set_audit_trail_location(
audit_trail_type IN PLS_INTEGER,
audit_trail_location_value IN VARCHAR2); -- tablespace name |
| See IS_CLEANUP_INITIALIZED Demo Above |
| |
| SET_AUDIT_TRAIL_PROPERTY |
| Sets an property of an audit trail |
dbms_audit_mgmt.set_audit_trail_property(
audit_trail_type IN PLS_INTEGER,
audit_trail_property IN PLS_INTEGER,
audit_trail_property_value IN PLS_INTEGER); |
| See CLEAR_AUDIT_TRAIL_PROPERTY Demo Above |
| |
| SET_DEBUG_LEVEL |
| Sets the debug level for tracing |
dbms_audit_mgmt.set_debug_level(debug_level IN PLS_INTEGER := TRACE_LEVEL_ERROR); |
| exec dbms_audit_mgmt.set_debug_level(dbms_audit_mgmt.TRACE_LEVEL_ERROR); |
| |
| SET_LAST_ARCHIVE_TIMESTAMP |
| Sets the timestamp when the last audit records were archived |
dbms_audit_mgmt.set_last_archive_timestamp(
audit_trail_type IN PLS_INTEGER,
last_archive_time IN TIMESTAMP,
rac_instance_number IN PLS_INTEGER := NULL); |
DECLARE
att NUMBER := dbms_audit_mgmt.audit_trail_aud_std;
lat TIMESTAMP := TO_TIMESTAMP('10-MAR-08 14:42:42.00','DD-MON-YYYY HH24:MI:SS.FF');
BEGIN
dbms_audit_mgmt.set_LAST_ARCHIVE_TIMESTAMP(att, lat, 1);
END;
/ |
| |
| SET_PURGE_JOB_INTERVAL |
| Set the interval of the purge job |
dbms_audit_mgmt.set_purge_job_interval(
audit_trail_purge_name IN VARCHAR2,
audit_trail_interval_value IN PLS_INTEGER); |
| See CREATE_PURGE_JOB Demo Above |
| |
| SET_PURGE_JOB_STATUS |
| Set the status of the purge job |
dbms_audit_mgmt.set_purge_job_status(
audit_trail_purge_name IN VARCHAR2,
audit_trail_status_value IN PLS_INTEGER); |
| See CREATE_PURGE_JOB Demo Above |