1 PACKAGE dbms_audit_mgmt AS
2
3 -- Constants
4
5 -- Audit Trail types
6 --
7 AUDIT_TRAIL_AUD_STD CONSTANT NUMBER := 1;
8 AUDIT_TRAIL_FGA_STD CONSTANT NUMBER := 2;
9 --
10 -- Both AUDIT_TRAIL_AUD_STD and AUDIT_TRAIL_FGA_STD
11 AUDIT_TRAIL_DB_STD CONSTANT NUMBER := 3;
12 --
13 AUDIT_TRAIL_OS CONSTANT NUMBER := 4;
14 AUDIT_TRAIL_XML CONSTANT NUMBER := 8;
15 --
16 -- Both AUDIT_TRAIL_OS and AUDIT_TRAIL_XML
17 AUDIT_TRAIL_FILES CONSTANT NUMBER := 12;
18 --
19 -- All above audit trail types
20 AUDIT_TRAIL_ALL CONSTANT NUMBER := 15;
21
22 --
23 -- OS Audit File Configuration parameters
24 OS_FILE_MAX_SIZE CONSTANT NUMBER := 16;
25 OS_FILE_MAX_AGE CONSTANT NUMBER := 17;
26
27 --
28 --
29 CLEAN_UP_INTERVAL CONSTANT NUMBER := 21;
30 DB_AUDIT_TABLEPSACE CONSTANT NUMBER := 22;
31 DB_DELETE_BATCH_SIZE CONSTANT NUMBER := 23;
32 TRACE_LEVEL CONSTANT NUMBER := 24;
33 -- AUD_TAB_MOVEMENT_FLAG(23) will not be entered in DAM_CONFIG_PARAM$
34 AUD_TAB_MOVEMENT_FLAG CONSTANT NUMBER := 25;
35 FILE_DELETE_BATCH_SIZE CONSTANT NUMBER := 26;
36
37 --
38 -- Values for PURGE_JOB_STATUS
39 PURGE_JOB_ENABLE CONSTANT NUMBER := 31;
40 PURGE_JOB_DISABLE CONSTANT NUMBER := 32;
41
42 --
43 -- NG Audit Trail write mode configuration
44 AUDIT_TRAIL_WRITE_MODE CONSTANT NUMBER := 33;
45 -- Values for Write mode
46 AUDIT_TRAIL_QUEUED_WRITE CONSTANT NUMBER := 1;
47 AUDIT_TRAIL_IMMEDIATE_WRITE CONSTANT NUMBER := 2;
48 --AUDIT_TRAIL_COMMIT_WRITE CONSTANT NUMBER := 3;
49
50 --
51 -- Values for TRACE_LEVEL
52 TRACE_LEVEL_DEBUG CONSTANT PLS_INTEGER := 1;
53 TRACE_LEVEL_ERROR CONSTANT PLS_INTEGER := 2;
54
55 -- UNIFIED Audit Trail
56 AUDIT_TRAIL_UNIFIED CONSTANT NUMBER := 51;
57
58 --
59 -- Values for CONTAINER
60 CONTAINER_CURRENT CONSTANT PLS_INTEGER := 1;
61 CONTAINER_ALL CONSTANT PLS_INTEGER := 2;
62
63 -- Values for FLUSH_TYPE
64 FLUSH_CURRENT_INSTANCE CONSTANT PLS_INTEGER := 1;
65 FLUSH_ALL_INSTANCES CONSTANT PLS_INTEGER := 2;
66
67 ----------------------------------------------------------------------------
68 /*
69
70 NOTE: The package can be split into two packages - one intended for use by
71 AV collectors and the one by Audit Admin.
72
73 The first 3 procedures will be mainly used by the Collectors and the rest
74 must be executed by Audit Admins.
75
76 Alternately, wrapper packages can be written to achieve this Seperation of
77 Duty.
78
79 */
80
81 /* APIS REQUIRED BY COLLECTORS */
82 ----------------------------------------------------------------------------
83
84 -- set_last_archive_timestamp - Sets timestamp when last audit records
85 -- were archived
86 --
87 -- INPUT PARAMETERS
88 -- audit_trail_type - Audit trail for which the last audit
89 -- record timestamp is being set
90 -- last_archive_time - Timestamp when last audit record was
91 -- archived
92 -- rac_instance_number - RAC instance number to which this applies
93 -- def. value = null(applies to no RAC node)
94 -- container - PDB Container to execute in
95 -- CONTAINER_CURRENT or CONTAINER_ALL
96 -- Default : CONTAINER_CURRENT
97 -- database_id - Database ID (DBID) of the audit records
98 -- to cleanup. Default: NULL
99 -- container_guid - Container GUID of the audit records
100 -- to cleanup. Default: NULL
101
102 PROCEDURE set_last_archive_timestamp
103 (audit_trail_type IN PLS_INTEGER,
104 last_archive_time IN TIMESTAMP,
105 rac_instance_number IN PLS_INTEGER := null,
106 container IN PLS_INTEGER := CONTAINER_CURRENT,
107 database_id IN NUMBER := null,
108 container_guid IN VARCHAR2 := null
109 );
110
111 ----------------------------------------------------------------------------
112
113 -- clear_last_archive_timestamp - Deletes the timestamp set by
114 -- set_last_archive_timestamp
115 --
116 -- INPUT PARAMETERS
117 -- audit_trail_type - Audit trail for which the last audit
118 -- record timestamp was set
119 -- rac_instance_number - RAC instance number to which this applies
120 -- def. value = null(applies to no RAC node)
121 -- container - PDB Container to execute in
122 -- CONTAINER_CURRENT or CONTAINER_ALL
123 -- Default : CONTAINER_CURRENT
124 -- database_id - Database ID (DBID) of the audit records
125 -- to cleanup. Default: NULL
126 -- container_guid - Container GUID of the audit records
127 -- to cleanup. Default: NULL
128
129 PROCEDURE clear_last_archive_timestamp
130 (audit_trail_type IN PLS_INTEGER,
131 rac_instance_number IN PLS_INTEGER := null,
132 container IN PLS_INTEGER := CONTAINER_CURRENT,
133 database_id IN NUMBER := null,
134 container_guid IN VARCHAR2 := null
135 );
136
137 ----------------------------------------------------------------------------
138
139 -- get_last_archive_timestamp - Retrieves the timestamp set by
140 -- set_last_archive_timestamp for the current
141 -- instance
142 --
143 -- INPUT PARAMETERS
144 -- audit_trail_type - Audit trail for which the last audit
145 -- record timestamp was set
146 -- RETURNS
147 -- TIMESTAMP - Last Archive Timestamp in memory
148
149 FUNCTION get_last_archive_timestamp
150 (audit_trail_type IN PLS_INTEGER)
151 RETURN TIMESTAMP;
152
153 -----------------------------------------------------------------------------
154
155 -- get_audit_commit_delay - GETs the audit commit delay set in the db.
156 --
157 -- INPUT PARAMETERS
158 -- None
159 -- RETURNS
160 -- PLS_INTEGER - AUD_AUDIT_COMMIT_DELAY
161 --
162
163 FUNCTION get_audit_commit_delay RETURN PLS_INTEGER;
164
165 ----------------------------------------------------------------------------
166
167 -- get_audit_trail_property_value - Retrieves the value of the property set
168 -- by set_audit_trail_property
169 --
170 -- INPUT PARAMETERS
171 -- audit_trail_type - Audit trail for which the property was set
172 -- audit_trail_property - Property for which the value is to be
173 -- fetched
174 -- RETURNS
175 -- NUMBER - Value of the audit trail property in memory
176
177 FUNCTION get_audit_trail_property_value
178 (audit_trail_type IN PLS_INTEGER,
179 audit_trail_property IN PLS_INTEGER)
180 RETURN NUMBER;
181
182 ----------------------------------------------------------------------------
183
184 -- is_cleanup_initialized - Checks if Audit Cleanup is initialized for the
185 -- audit trail type
186 --
187 -- INPUT PARAMETERS
188 -- audit_trail_type - Audit trail to check initialization for.
189 -- container - PDB Container to execute in
190 -- CONTAINER_CURRENT or CONTAINER_ALL
191 -- RETURNS
192 -- TRUE - If audit trail is initialized for clean up.
193 -- FALSE - otherwise.
194 --
195
196 FUNCTION is_cleanup_initialized
197 (audit_trail_type IN PLS_INTEGER,
198 container IN PLS_INTEGER := CONTAINER_CURRENT)
199 RETURN BOOLEAN;
200
201 -- is_cleanup_initialized2 - Checks if Audit Cleanup is initialized for the
202 -- audit trail type and returns VARCHAR2 type
203 --
204 -- INPUT PARAMETERS
205 -- audit_trail_type - Audit trail to check initialization for.
206 -- container - PDB Container to execute in
207 -- CONTAINER_CURRENT or CONTAINER_ALL
208 -- RETURNS
209 -- 'TRUE' - If audit trail is initialized for clean up.
210 -- 'FALSE' - otherwise.
211 --
212
213 FUNCTION is_cleanup_initialized2
214 (audit_trail_type IN PLS_INTEGER,
215 container IN PLS_INTEGER := CONTAINER_CURRENT)
216 RETURN VARCHAR2;
217
218 -- is_cleanup_initialized - Checks if Audit Cleanup is initialized for the
219 -- audit trail type (CDB version)
220 -- This function returns all PDB names that are not
221 -- initialized for cleanup
222 -- INPUT PARAMETERS
223 -- audit_trail_type - Audit trail to check initialization for.
224 -- container - PDB Container to execute in
225 -- CONTAINER_CURRENT or CONTAINER_ALL
226 -- OUTPUT PARAMETERS
227 -- uninitialized_pdb - Array of uninitialized PDB names
228 -- RETURNS
229 -- TRUE - If audit trail is initialized for clean up.
230 -- FALSE - otherwise.
231 --
232 FUNCTION is_cleanup_initialized
233 (audit_trail_type IN PLS_INTEGER,
234 container IN PLS_INTEGER := CONTAINER_CURRENT,
235 uninitialized_pdbs IN OUT DBMS_SQL.VARCHAR2S)
236 RETURN BOOLEAN;
237
238 ----------------------------------------------------------------------------
239
240 /* APIS NEED TO BE RUN BY AUDIT ADMINS */
241 ----------------------------------------------------------------------------
242
243 -- init_cleanup - Initialize DBMS_AUDIT_MGMT
244 --
245 -- INPUT PARAMETERS
246 -- audit_trail_type - Audit trail for which set-up must done.
247 -- default_cleanup_interval - Default interval at which clean up is
248 -- invoked.
249 -- container - PDB Container to execute in
250 -- CONTAINER_CURRENT or CONTAINER_ALL
251 -- Default : CONTAINER_CURRENT
252
253 PROCEDURE init_cleanup
254 (audit_trail_type IN PLS_INTEGER,
255 default_cleanup_interval IN PLS_INTEGER,
256 container IN PLS_INTEGER := CONTAINER_CURRENT
257 );
258
259 ----------------------------------------------------------------------------
260
261 -- set_audit_trail_location - Set destination for an audit trail
262 --
263 -- INPUT PARAMETERS
264 -- audit_trail_type - Audit trail for which the location
265 -- is being set
266 -- audit_trail_location_value - Value of the location
267
268 PROCEDURE set_audit_trail_location
269 (audit_trail_type IN PLS_INTEGER,
270 audit_trail_location_value IN VARCHAR2
271 );
272
273 ----------------------------------------------------------------------------
274
275 -- deinit_cleanup - De-Initialize DBMS_AUDIT_MGMT
276 --
277 -- INPUT PARAMETERS
278 -- audit_trail_type - Audit trail for which set-up must done.
279 -- container - PDB Container to execute in
280 -- CONTAINER_CURRENT or CONTAINER_ALL
281 -- Default : CONTAINER_CURRENT
282
283 PROCEDURE deinit_cleanup
284 (audit_trail_type IN PLS_INTEGER,
285 container IN PLS_INTEGER := CONTAINER_CURRENT);
286
287 ----------------------------------------------------------------------------
288
289 -- set_audit_trail_property - Set a property of an audit trail
290 --
291 -- INPUT PARAMETERS
292 -- audit_trail_type - Audit trail whose parameter must be set
293 -- audit_trail_property - Property that must be set
294 -- audit_trail_property_value - Value to which the property must set
295
296 PROCEDURE set_audit_trail_property
297 (audit_trail_type IN PLS_INTEGER,
298 audit_trail_property IN PLS_INTEGER,
299 audit_trail_property_value IN PLS_INTEGER
300 );
301
302 ----------------------------------------------------------------------------
303
304 -- clear_audit_trail_property - Clears a property of an audit trail
305 --
306 -- INPUT PARAMETERS
307 -- audit_trail_type - Audit trail whose parameter must be set
308 -- audit_trail_property - Property that must be cleared
309 -- use_default_values - Use default values after clearing the
310 -- property, default value is FALSE.
311
312 PROCEDURE clear_audit_trail_property
313 (audit_trail_type IN PLS_INTEGER,
314 audit_trail_property IN PLS_INTEGER,
315 use_default_values IN BOOLEAN := FALSE
316 );
317
318 ----------------------------------------------------------------------------
319
320 -- clean_audit_trail - Deletes entries in audit trail according to the
321 -- timestamp set in set_last_archive_timestamp
322 --
323 -- INPUT PARAMETERS
324 -- audit_trail_type - Audit trail which should be cleared
325 -- use_last_arch_timestamp - Use Last Archive Timestamp set.
326 -- default value = TRUE.
327 -- container - PDB Container to execute in
328 -- CONTAINER_CURRENT or CONTAINER_ALL
329 -- Default : CONTAINER_CURRENT
330 -- database_id - Database ID (DBID) of the audit records
331 -- to cleanup. Default: NULL
332 -- container_guid - Container GUID of the audit records
333 -- to cleanup. Default: NULL
334
335 PROCEDURE clean_audit_trail
336 (audit_trail_type IN PLS_INTEGER,
337 use_last_arch_timestamp IN BOOLEAN := TRUE,
338 container IN PLS_INTEGER := CONTAINER_CURRENT,
339 database_id IN NUMBER := null,
340 container_guid IN VARCHAR2 := null
341 );
342
343 ----------------------------------------------------------------------------
344
345 -- create_purge_job - Creates a purge job for an audit trail
346 --
347 -- INPUT PARAMETERS
348 -- audit_trail_type - Audit trail for which this job is created
349 -- audit_trail_purge_interval - Interval to determine frequency of
350 -- purge operation
351 -- audit_trail_interval_unit - Unit of measurement for
352 -- audit_trail_purge_interval
353 -- audit_trail_purge_name - Name to identify this job
354 -- use_last_arch_timestamp - Use Last Archive Timestamp set.
355 -- default value = TRUE.
356 -- container - Job to manage Current or All PDBs -
357 -- CONTAINER_CURRENT or CONTAINER_ALL
358 -- Default : CONTAINER_CURRENT
359
360 PROCEDURE create_purge_job
361 (audit_trail_type IN PLS_INTEGER,
362 audit_trail_purge_interval IN PLS_INTEGER,
363 audit_trail_purge_name IN VARCHAR2,
367
364 use_last_arch_timestamp IN BOOLEAN := TRUE,
365 container IN PLS_INTEGER := CONTAINER_CURRENT
366 );
368 ----------------------------------------------------------------------------
369
370 -- set_purge_job_status - Set the status of the purge job
371 --
372 -- INPUT PARAMETERS
373 -- audit_trail_purge_name - Name of the purge job created
374 -- audit_trail_status_value - Value to which the status must set
375
376 PROCEDURE set_purge_job_status
377 (audit_trail_purge_name IN VARCHAR2,
378 audit_trail_status_value IN PLS_INTEGER
379 );
380
381 ----------------------------------------------------------------------------
382
383 -- set_purge_job_interval - Set the interval of the purge job
384 --
385 -- INPUT PARAMETERS
386 -- audit_trail_purge_name - Name of the purge job created
387 -- audit_trail_interval_type - Type of interval that must be set
388 -- audit_trail_interval_value - Value to which the interval must set
389
390 PROCEDURE set_purge_job_interval
391 (audit_trail_purge_name IN VARCHAR2,
392 audit_trail_interval_value IN PLS_INTEGER
393 );
394
395 ----------------------------------------------------------------------------
396
397 -- drop_purge_job - Drops the purge job for an audit trail
398 --
399 -- INPUT PARAMETERS
400 -- audit_trail_purge_name - Name to identify this job
401
402 PROCEDURE drop_purge_job
403 (audit_trail_purge_name IN VARCHAR2
404 );
405
406 ----------------------------------------------------------------------------
407
408 -- move_dbaudit_tables - Moves DB audit tables to specified tablespace
409 --
410 -- INPUT PARAMETERS
411 -- audit_trail_tbs - The table space to which to move the DB audit tables.
412 -- The default value is the SYSAUX tablespace.
413
414 PROCEDURE move_dbaudit_tables
415 (audit_trail_tbs IN VARCHAR2 DEFAULT 'SYSAUX'
416 );
417
418 ----------------------------------------------------------------------------
419
420 -- set_debug_level - Sets the debug level for tracing
421 --
422 -- INPUT PARAMETERS
423 -- debug_level - Number to identify the trace level
424
425 PROCEDURE set_debug_level(debug_level IN PLS_INTEGER := TRACE_LEVEL_ERROR);
426
427 ----------------------------------------------------------------------------
428
429 -- flush_unified_audit_trail - Flushes all the in-memory queues
430 --
431 -- INPUT PARAMETERS
432 -- flush_type - Flush Local RAC node or all RAC nodes
433 -- The default value is FLUSH_CURRENT_INSTANCE
434 -- container - PDB Container to execute in
435 -- CONTAINER_CURRENT or CONTAINER_ALL
436 -- Default : CONTAINER_CURRENT
437 --
438
439 PROCEDURE flush_unified_audit_trail
440 (flush_type IN PLS_INTEGER := FLUSH_CURRENT_INSTANCE,
441 container IN PLS_INTEGER := CONTAINER_CURRENT);
442
443 ----------------------------------------------------------------------------
444
445 -- load_unified_audit_files - Loads all spillover audit files to tables
446 --
447 -- container - PDB Container to execute in
448 -- CONTAINER_CURRENT or CONTAINER_ALL
449 -- Default : CONTAINER_CURRENT
450 --
451
452 PROCEDURE load_unified_audit_files
453 (container IN PLS_INTEGER := CONTAINER_CURRENT);
454
455 ----------------------------------------------------------------------------
456
457 -- drop_old_unified_audit_tables - Drops the given Old Unified Audit
458 -- (CLI based) tables
459 --
460 -- container_guid - Container GUID of the Unified Audit
461 -- table
462 --
463
464 PROCEDURE drop_old_unified_audit_tables
465 (container_guid IN VARCHAR2);
466
467 END dbms_audit_mgmt;