{"id":3212,"date":"2021-04-19T09:00:00","date_gmt":"2021-04-19T06:00:00","guid":{"rendered":"https:\/\/www.dataplatform.gr\/?p=3212"},"modified":"2024-06-18T17:52:45","modified_gmt":"2024-06-18T14:52:45","slug":"pos-energopoioyme-to-auditing-se-oracle-database","status":"publish","type":"post","link":"https:\/\/www.dataplatform.gr\/en\/pos-energopoioyme-to-auditing-se-oracle-database\/","title":{"rendered":"How we enable auditing in Oracle Database"},"content":{"rendered":"<p>In this article we will see the steps and options we have to activate it <strong>auditing <\/strong>in one <strong>Oracle<\/strong> <strong>Database<\/strong>. Through auditing we can record who and how accesses or changes its data.<\/p>\n\n\n\n<p>Auditing can be activated on specific users, on specific objects or on the entire database.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How is it activated?<\/h2>\n\n\n\n<p>First we have to see from a command window in the database if the parameter is enabled<strong> audit_trail<\/strong>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">SQL>  show parameter audit_trail<\/pre>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>NAME                                 TYPE        VALUE\n------------------------------------ ----------- ------------------------------\naudit_trail                          string      DB, EXTENDED\n<\/code><\/pre>\n\n\n\n<p>If it is not, we activate it with the options <strong>db,extended<\/strong>. The extended is needed in order to keep not only who accessed the data but also the sql statement along with its parameters.<\/p>\n\n\n\n<p>To get the change, it needs to be done <strong>restart the instance<\/strong>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">alter system set audit_trail = db,extended scope=spfile;\n\nshutdown immediate;\n\nstartup;<\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Audit on a specific object<\/h3>\n\n\n\n<p>If we want to audit a specific table, we run the following:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">audit select on SCOTT.DEPT by access;\n\n--noaudit select on SCOTT.DEPT;<\/pre>\n\n\n\n<p><em>*The <strong>by access <\/strong>defines that every time the same user from the same session goes to access the table to keep it as a separate record<\/em><\/p>\n\n\n\n<p><em>**With the same command starting<\/em> <em>with the <strong>noaudit <\/strong>without the <strong>by access<\/strong> We do it <strong>disable<\/strong>.<\/em><\/p>\n\n\n\n<p>To see that it was activated, we run the following query in the view <code>dba_obj_audit_opts<\/code> and we will see that it says A\/A in the select column:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">select * from DBA_OBJ_AUDIT_OPTS where object_name ='DEPT';<\/pre>\n\n\n\n<p><em>*we could add other actions such as insert, update, delete, alter, etc<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"181\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-01-1024x181.png\" alt=\"\" class=\"wp-image-3213\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-01-1024x181.png 1024w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-01-300x53.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-01-768x136.png 768w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-01.png 1048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">01<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Where we find the results of the auditing<\/h3>\n\n\n\n<p>After we run a select on the object we activated the audit before, e.g.:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">select * from scott.dept;<\/pre>\n\n\n\n<p>We will see the auditing information at<strong> <\/strong><code>dba_audit_trail<\/code>, which is a table view <code>sys.aud$<\/code>.<\/p>\n\n\n\n<p>Making the selection in the view we will see information such as from which username it was made, from which terminal, what time, in which object and exactly what sql query was run:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">--view\nselect username,os_username,userhost,terminal,timestamp,owner,obj_name,action_name,SQL_TEXT,SQL_BIND from dba_audit_trail; \n\n--table select * from sys.aud$;<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"135\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-08-1024x135.png\" alt=\"\" class=\"wp-image-3220\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-08-1024x135.png 1024w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-08-300x39.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-08-768x101.png 768w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-08.png 1072w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">02<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Audit a specific user<\/h3>\n\n\n\n<p>We can respectively activate auditing only for a specific user and for specific actions such as select, insert, update, delete:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">audit select table,update table,insert table, delete table,execute procedure BY stratos by access;\n\n--noaudit select table,update table,insert table, delete table,execute procedure BY stratos;<\/pre>\n\n\n\n<p>Running select on the view <code>dba_stmt_audit_opts <\/code>we&#039;ll see exactly what we set auditing to record:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">select * from dba_stmt_audit_opts where user_name='STRATOS';<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"603\" height=\"226\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-02.png\" alt=\"\" class=\"wp-image-3214\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-02.png 603w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-02-300x112.png 300w\" sizes=\"auto, (max-width: 603px) 100vw, 603px\" \/><figcaption class=\"wp-element-caption\">03<\/figcaption><\/figure>\n\n\n\n<p>Making an update with this user\u2026:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">update scott.dept set LOC='FLORIDA' where LOC='BOSTON';\ncommit;<\/pre>\n\n\n\n<p>We will see that he also recorded this in the <code>dba_audit_trail <\/code>view.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"143\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-03-1024x143.png\" alt=\"\" class=\"wp-image-3215\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-03-1024x143.png 1024w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-03-300x42.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-03-768x107.png 768w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-03.png 1276w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">04<\/figcaption><\/figure>\n\n\n\n<p>In case we have enabled auditing to record it <code>CREATE SESSION<\/code> then we can see what time each user connected with the following query:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">--audit CREATE SESSION by STRATOS by session;\n\nselect * from dba_audit_session order by timestamp desc;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Audit on specific actions<\/h3>\n\n\n\n<p>Accordingly, we can set auditing to be activated in specific actions such as select, insert, update, delete:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">audit select table,update table,insert table, delete table,execute procedure by access;\n\n--noaudit select table,update table,insert table, delete table,execute procedure;\n<\/pre>\n\n\n\n<p>Running select on the view <code>dba_stmt_audit_opts <\/code>we will see what we set to record with the username this time empty:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"604\" height=\"217\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-07.png\" alt=\"\" class=\"wp-image-3219\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-07.png 604w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-07-300x108.png 300w\" sizes=\"auto, (max-width: 604px) 100vw, 604px\" \/><figcaption class=\"wp-element-caption\">05<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Audit on what object is made in the future<\/h3>\n\n\n\n<p>If we want to activate auditing on specific actions, in any new object we create, we add the parameter <strong>on default<\/strong>, as below:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">audit select,insert,update,delete,alter,execute on default by access;\n\n--noaudit select,insert,update,delete,alter,execute on default;<\/pre>\n\n\n\n<p>So once we make a table and add a record like here:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">create table stratos.stratos (id int);\ninsert into stratos.stratos values (1);\ncommit;<\/pre>\n\n\n\n<p>It will be added to the view <code>dba_obj_audit_opts<\/code>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">select * from dba_stmt_audit_opts;<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"69\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-05-1024x69.png\" alt=\"\" class=\"wp-image-3217\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-05-1024x69.png 1024w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-05-300x20.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-05-768x51.png 768w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-05.png 1194w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">06<\/figcaption><\/figure>\n\n\n\n<p>And accordingly it will be recorded in the view <code>dba_audit_trail<\/code>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">select username,os_username,userhost,terminal,timestamp,owner,obj_name,action_name,SQL_TEXT,SQL_BIND from dba_audit_trail; <\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"163\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-04-1024x163.png\" alt=\"\" class=\"wp-image-3216\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-04-1024x163.png 1024w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-04-300x48.png 300w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-04-768x122.png 768w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-04.png 1143w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">07<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Audit everywhere<\/h3>\n\n\n\n<p>If we want to have audit enabled on everything, we run the following:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">audit all by access;\n\n--noaudit all;<\/pre>\n\n\n\n<p>If we then run select on the view <code>dba_stmt_audit_opts<\/code>, we will see that it will contain all the existing actions:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">select * from dba_stmt_audit_opts;<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"610\" height=\"549\" src=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-06.png\" alt=\"\" class=\"wp-image-3218\" srcset=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-06.png 610w, https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2021\/04\/oau-06-300x270.png 300w\" sizes=\"auto, (max-width: 610px) 100vw, 610px\" \/><figcaption class=\"wp-element-caption\">08<\/figcaption><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How we maintain auditing<\/h2>\n\n\n\n<p>Because these records will take up a lot of space in system tablespaces, we should periodically delete old records from the table <code>sys.AUD$<\/code> which the view sees <code>dba_audit_trail<\/code>.<\/p>\n\n\n\n<p>First of all, we must have done an init cleanup in which we define that the audits records are transferred from the schema <code>SYSTEM <\/code>in the <code>SYSAUX<\/code>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">BEGIN\nDBMS_AUDIT_MGMT.INIT_CLEANUP(\n              audit_trail_type   => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL,\n      default_cleanup_interval   => 12 \/* hours *\/);\nEND;<\/pre>\n\n\n\n<p>Then we check that it has been activated:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">SET SERVEROUTPUT ON\nBEGIN\nIF DBMS_AUDIT_MGMT.is_cleanup_initialized(DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD) THEN\nDBMS_OUTPUT.put_line('YES');\nELSE\nDBMS_OUTPUT.put_line('NO');\nEND IF;\nEND;\n\/<\/pre>\n\n\n\n<p>To delete the old manual entries we run the following:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">alter table sys.AUD$ nologging;\ndelete from sys.aud$ \nwhere TIMESTAMP# &lt;= sysdate-30;\ncommit;<\/pre>\n\n\n\n<p>If we want to create a job that will delete records older than 30 days automatically, we run the following:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">BEGIN\nDBMS_SCHEDULER.create_job (\njob_name => 'JOB_PURGE_AUDIT_RECORDS',\njob_type => 'PLSQL_BLOCK',\njob_action => 'BEGIN \nDBMS_AUDIT_MGMT.SET_LAST_ARCHIVE_TIMESTAMP(DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD, TRUNC(SYSTIMESTAMP)-30); \nDBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(\naudit_trail_type         =>  DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD,\nuse_last_arch_timestamp  =>  TRUE); \nEND;',\nstart_date => SYSTIMESTAMP,\nrepeat_interval => 'freq=daily; byhour=0; byminute=0; bysecond=0;',\nend_date => NULL,\nenabled => TRUE,\ncomments => 'JOB_PURGE_AUDIT_RECORDS');\nEND;\n\/<\/pre>\n\n\n\n<p>To see when the job ran last and when it will run again, run the following:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">select LAST_START_DATE,LAST_RUN_DURATION,NEXT_RUN_DATE from dba_scheduler_jobs where job_name= 'JOB_PURGE_AUDIT_RECORDS';<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">How do I store the audit trail files in a separate tablespace<\/h2>\n\n\n\n<p>So that we don&#039;t fill up <code>SYS \/ SYSTEM \/ SYSAUX <\/code>tablespace we have the possibility to create a new tablespace and define in it that the auditing is stored.<\/p>\n\n\n\n<p>To do this we first create this new tablespace:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">create tablespace AUDIT_TS datafile '\/oracle\/oradata\/orcl\/audit_ts_001.dbf' size 100m autoextend on next 64m maxsize 32767m;<\/pre>\n\n\n\n<p>And then we run the following command putting the name of the tablespace we just created:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">BEGIN DBMS_AUDIT_MGMT.set_audit_trail_location(audit_trail_type=>DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD, audit_trail_location_value => 'AUDIT_TS');\nEND;\n\/<\/pre>\n\n\n\n<p>So by running the following query we can confirm that the table <code>AUD$<\/code> belongs to the new tablespace:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">select * from dba_tables where table_name ='AUD$';<\/pre>\n\n\n\n<p>We reset the init cleanup to make sure that the records are transferred to the new tablespace:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">BEGIN\nDBMS_AUDIT_MGMT.DEINIT_CLEANUP(\n  AUDIT_TRAIL_TYPE  => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL);\nEND;\n\nBEGIN\nDBMS_AUDIT_MGMT.INIT_CLEANUP(\n              audit_trail_type   => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL,\n      default_cleanup_interval   => 12 \/* hours *\/);\nEND;\n\nSET SERVEROUTPUT ON\nBEGIN\nIF DBMS_AUDIT_MGMT.is_cleanup_initialized(DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD) THEN\nDBMS_OUTPUT.put_line('YES');\nELSE\nDBMS_OUTPUT.put_line('NO');\nEND IF;\nEND;\n\/<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">In case of ORA-01403 error<\/h4>\n\n\n\n<p>In case we have upgraded from an older version, the tablespace change command may show us the following error:<\/p>\n\n\n\n<pre class=\"wp-block-code\" data-no-translation=\"\" data-no-auto-translation=\"\"><code>ORA-01403: no data found<\/code><\/pre>\n\n\n\n<p>In this case we check in which schema the table is <code>AUD$<\/code>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">select * from dba_tables where table_name ='AUD$';<\/pre>\n\n\n\n<p>If it is indeed in a different e.g. in the <code>SYSTEM <\/code>instead of <code>SYS<\/code> then we should keep a backup of the table DDL:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">select dbms_metadata.get_ddl('TABLE', 'AUD$','SYSTEM') from dual;<\/pre>\n\n\n\n<p>Then we delete the synonym and the table and rebuild them with the DDL we kept in the schema <code>SYS<\/code>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">drop table system.aud$\ndrop synonym sys.aud$;\n \n  CREATE TABLE \"SYS\".\"AUD$\" \n   (  \"SESSIONID\" NUMBER NOT NULL ENABLE, \n  \"ENTRYID\" NUMBER NOT NULL ENABLE, \n  \"STATEMENT\" NUMBER NOT NULL ENABLE, \n  \"TIMESTAMP#\" DATE, \n  \"USERID\" VARCHAR2(128), \n  \"USERHOST\" VARCHAR2(128), \n  \"TERMINAL\" VARCHAR2(255), \n  \"ACTION#\" NUMBER NOT NULL ENABLE, \n  \"RETURNCODE\" NUMBER NOT NULL ENABLE, \n  \"OBJ$CREATOR\" VARCHAR2(128), \n  \"OBJ$NAME\" VARCHAR2(128), \n  \"AUTH$PRIVILEGES\" VARCHAR2(16), \n  \"AUTH$GRANTEE\" VARCHAR2(128), \n  \"NEW$OWNER\" VARCHAR2(128), \n  \"NEW$NAME\" VARCHAR2(128), \n  \"SES$ACTIONS\" VARCHAR2(19), \n  \"SES$TID\" NUMBER, \n  \"LOGOFF$LREAD\" NUMBER, \n  \"LOGOFF$PREAD\" NUMBER, \n  \"LOGOFF$LWRITE\" NUMBER, \n  \"LOGOFF$DEAD\" NUMBER, \n  \"LOGOFF$TIME\" DATE, \n  \"COMMENT$TEXT\" VARCHAR2(4000), \n  \"CLIENTID\" VARCHAR2(128), \n  \"SPARE1\" VARCHAR2(255), \n  \"SPARE2\" NUMBER, \n  \"OBJ$LABEL\" RAW(255), \n  \"SES$LABEL\" RAW(255), \n  \"PRIV$USED\" NUMBER, \n  \"SESSIONCPU\" NUMBER, \n  \"NTIMESTAMP#\" TIMESTAMP (6), \n  \"PROXY$SID\" NUMBER, \n  \"USER$GUID\" VARCHAR2(32), \n  \"INSTANCE#\" NUMBER, \n  \"PROCESS#\" VARCHAR2(16), \n  \"XID\" RAW(8), \n  \"AUDITID\" VARCHAR2(64), \n  \"SCN\" NUMBER, \n  \"DBID\" NUMBER, \n  \"SQLBIND\" CLOB, \n  \"SQLTEXT\" CLOB, \n  \"OBJ$EDITION\" VARCHAR2(128), \n  \"RLS$INFO\" CLOB, \n  \"CURRENT_USER\" VARCHAR2(128)\n   ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 \nNOCOMPRESS LOGGING\n  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645\n  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1\n  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)\n  TABLESPACE \"SYSTEM\" \nLOB (\"SQLBIND\") STORE AS BASICFILE (\n  TABLESPACE \"SYSTEM\" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION \n  NOCACHE LOGGING \n  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645\n  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1\n  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) \nLOB (\"SQLTEXT\") STORE AS BASICFILE (\n  TABLESPACE \"SYSTEM\" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION \n  NOCACHE LOGGING \n  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645\n  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1\n  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) \nLOB (\"RLS$INFO\") STORE AS BASICFILE (\n  TABLESPACE \"SYSTEM\" ENABLE STORAGE IN ROW CHUNK 8192 RETENTION \n  NOCACHE LOGGING \n  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645\n  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1\n  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT))<\/pre>\n\n\n\n<p>We give the right of delete to <code>delete_catalog_role<\/code> and retry the change tablespace command:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">GRANT DELETE ON AUD$ TO DELETE_CATALOG_ROLE;\n\nBEGIN DBMS_AUDIT_MGMT.set_audit_trail_location(audit_trail_type=>DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD, audit_trail_location_value => 'AUDIT_TS');\nEND;\n\/<\/pre>\n\n\n\n<p>We reset the init cleanup to make sure that the records are transferred to the new tablespace:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">BEGIN\nDBMS_AUDIT_MGMT.DEINIT_CLEANUP(\n  AUDIT_TRAIL_TYPE  => DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD);\nEND;\n\nBEGIN\nDBMS_AUDIT_MGMT.INIT_CLEANUP(\n              audit_trail_type   => DBMS_AUDIT_MGMT.AUDIT_TRAIL_ALL,\n      default_cleanup_interval   => 12 \/* hours *\/);\nEND;\n\nSET SERVEROUTPUT ON\nBEGIN\nIF DBMS_AUDIT_MGMT.is_cleanup_initialized(DBMS_AUDIT_MGMT.AUDIT_TRAIL_AUD_STD) THEN\nDBMS_OUTPUT.put_line('YES');\nELSE\nDBMS_OUTPUT.put_line('NO');\nEND IF;\nEND;\n\/<\/pre>\n\n\n\n<p>By doing all the above steps correctly, the change of the tablespace that we see in the following view should have progressed normally:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-translation=\"\" data-no-auto-translation=\"\">select * from dba_tables where table_name ='AUD$';<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Sources:<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.oracle.com\/cd\/B28359_01\/server.111\/b28286\/statements_4007.htm#SQLRF01107\" target=\"_blank\" rel=\"noreferrer noopener\">AUDIT(docs.oracle.com)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.oracle.com\/cd\/B19306_01\/network.102\/b14266\/cfgaudit.htm#BABCFIHB\" target=\"_blank\" rel=\"noreferrer noopener\">Configuring and Administering Auditing (docs.oracle.com)<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/smarttechways.com\/2020\/06\/19\/purge-the-audit-records-with-truncate-or-dbms_audit_mgmt-package\/\" target=\"_blank\" rel=\"noreferrer noopener\">Purge the Audit records with truncate or DBMS_AUDIT_MGMT package<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/19\/arpls\/DBMS_AUDIT_MGMT.html#GUID-756B7399-8057-4519-8D5F-554C932ABAA3\">DBMS_AUDIT_MGMT<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>In this article we will see the steps and options we have to enable auditing in an Oracle Database. Through auditing we can record who and how accesses or changes its data. We can activate auditing on specific users, on specific objects or [\u2026]<\/p>","protected":false},"author":1,"featured_media":704,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,16],"tags":[142,29,5,30],"class_list":["post-3212","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-databases","category-oracle-db","tag-auditing","tag-databases","tag-oracle-database","tag-rdbms"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf auditing \u03c3\u03b5 Oracle Database - DataPlatform.gr<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dataplatform.gr\/en\/pos-energopoioyme-to-auditing-se-oracle-database\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf auditing \u03c3\u03b5 Oracle Database - DataPlatform.gr\" \/>\n<meta property=\"og:description\" content=\"\u03a3\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03ac\u03c1\u03b8\u03c1\u03bf \u03b8\u03b1 \u03b4\u03bf\u03cd\u03bc\u03b5 \u03c4\u03b1 \u03b2\u03ae\u03bc\u03b1\u03c4\u03b1 \u03ba\u03b1\u03b9 \u03c4\u03b9\u03c2 \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ad\u03c2 \u03c0\u03bf\u03c5 \u03ad\u03c7\u03bf\u03c5\u03bc\u03b5 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03bf\u03c5\u03bc\u03b5 \u03c4\u03bf auditing \u03c3\u03b5 \u03bc\u03af\u03b1 Oracle Database. \u039c\u03ad\u03c3\u03b1 \u03b1\u03c0\u03cc \u03c4\u03bf auditing \u03bc\u03c0\u03bf\u03c1\u03bf\u03cd\u03bc\u03b5 \u03bd\u03b1 \u03ba\u03b1\u03c4\u03b1\u03b3\u03c1\u03ac\u03c6\u03bf\u03c5\u03bc\u03b5 \u03c0\u03bf\u03b9\u03bf\u03c2 \u03ba\u03b1\u03b9 \u03bc\u03b5 \u03c4\u03b9 \u03c4\u03c1\u03cc\u03c0\u03bf \u03ba\u03ac\u03bd\u03b5\u03b9 \u03c0\u03c1\u03bf\u03c3\u03c0\u03ad\u03bb\u03b1\u03c3\u03b7 \u03ae \u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2 \u03c3\u03c4\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03c4\u03b7\u03c2. \u03a4\u03bf auditing \u03bc\u03c0\u03bf\u03c1\u03bf\u03cd\u03bc\u03b5 \u03bd\u03b1 \u03c4\u03bf \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03bf\u03c5\u03bc\u03b5 \u03c0\u03ac\u03bd\u03c9 \u03c3\u03b5 \u03c3\u03c5\u03b3\u03ba\u03b5\u03ba\u03c1\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5\u03c2 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b5\u03c2, \u03c3\u03b5 \u03c3\u03c5\u03b3\u03ba\u03b5\u03ba\u03c1\u03b9\u03bc\u03ad\u03bd\u03b1 objects \u03ae [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dataplatform.gr\/en\/pos-energopoioyme-to-auditing-se-oracle-database\/\" \/>\n<meta property=\"og:site_name\" content=\"DataPlatform.gr\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/dataplatform.gr\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-04-19T06:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-18T14:52:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_oracle.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Stratos Matzouranis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Stratos Matzouranis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-auditing-se-oracle-database\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-auditing-se-oracle-database\\\/\"},\"author\":{\"name\":\"Stratos Matzouranis\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/person\\\/e87bf4fd02b65cb6aa0942f87245bbaf\"},\"headline\":\"\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf auditing \u03c3\u03b5 Oracle Database\",\"datePublished\":\"2021-04-19T06:00:00+00:00\",\"dateModified\":\"2024-06-18T14:52:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-auditing-se-oracle-database\\\/\"},\"wordCount\":158,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-auditing-se-oracle-database\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_oracle.png\",\"keywords\":[\"Auditing\",\"Databases\",\"Oracle Database\",\"RDBMS\"],\"articleSection\":[\"Databases\",\"Oracle Database\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-auditing-se-oracle-database\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-auditing-se-oracle-database\\\/\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-auditing-se-oracle-database\\\/\",\"name\":\"\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf auditing \u03c3\u03b5 Oracle Database - DataPlatform.gr\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-auditing-se-oracle-database\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-auditing-se-oracle-database\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_oracle.png\",\"datePublished\":\"2021-04-19T06:00:00+00:00\",\"dateModified\":\"2024-06-18T14:52:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-auditing-se-oracle-database\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-auditing-se-oracle-database\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-auditing-se-oracle-database\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_oracle.png\",\"contentUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_oracle.png\",\"width\":1280,\"height\":720},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/pos-energopoioyme-to-auditing-se-oracle-database\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u0391\u03c1\u03c7\u03b9\u03ba\u03ae\",\"item\":\"https:\\\/\\\/www.dataplatform.gr\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Databases\",\"item\":\"https:\\\/\\\/www.dataplatform.gr\\\/category\\\/databases\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Oracle Database\",\"item\":\"https:\\\/\\\/www.dataplatform.gr\\\/category\\\/databases\\\/oracle-db\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf auditing \u03c3\u03b5 Oracle Database\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#website\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/\",\"name\":\"dataplatform.gr - Sky is not the limit!\",\"description\":\"\u0398\u03b5\u03c9\u03c1\u03af\u03b1, \u03bf\u03b4\u03b7\u03b3\u03bf\u03af \u03ba\u03b1\u03b9 \u03c3\u03ba\u03ad\u03c8\u03b5\u03b9\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03b4\u03bf\u03c5\u03bb\u03b5\u03b9\u03ac \u03c3\u03b1\u03c2 \u03c0\u03b9\u03bf \u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03b9\u03ba\u03ac \u03ba\u03b1\u03b9 \u03c0\u03b9\u03bf \u03b5\u03cd\u03ba\u03bf\u03bb\u03b1 \u03c0\u03ac\u03bd\u03c9 \u03c3\u03c4\u03b9\u03c2 \u03b2\u03ac\u03c3\u03b5\u03b9\u03c2 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd, \u03c3\u03c4\u03b7\u03bd SQL, \u03c3\u03c4\u03bf Business Intelligence \u03ba\u03b1\u03b9 \u03c3\u03c4\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03b3\u03b5\u03bd\u03b9\u03ba\u03cc\u03c4\u03b5\u03c1\u03b1.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dataplatform.gr\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#organization\",\"name\":\"dataplatform.gr\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_logo_wbacki.png\",\"contentUrl\":\"https:\\\/\\\/www.dataplatform.gr\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/dp_logo_wbacki.png\",\"width\":322,\"height\":139,\"caption\":\"dataplatform.gr\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/dataplatform.gr\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/dataplatform-gr\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dataplatform.gr\\\/#\\\/schema\\\/person\\\/e87bf4fd02b65cb6aa0942f87245bbaf\",\"name\":\"Stratos Matzouranis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g\",\"caption\":\"Stratos Matzouranis\"},\"sameAs\":[\"https:\\\/\\\/www.dataplatform.gr\"],\"url\":\"https:\\\/\\\/www.dataplatform.gr\\\/en\\\/author\\\/stratos-matzouranis\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf auditing \u03c3\u03b5 Oracle Database - DataPlatform.gr","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dataplatform.gr\/en\/pos-energopoioyme-to-auditing-se-oracle-database\/","og_locale":"en_US","og_type":"article","og_title":"\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf auditing \u03c3\u03b5 Oracle Database - DataPlatform.gr","og_description":"\u03a3\u03b5 \u03b1\u03c5\u03c4\u03cc \u03c4\u03bf \u03ac\u03c1\u03b8\u03c1\u03bf \u03b8\u03b1 \u03b4\u03bf\u03cd\u03bc\u03b5 \u03c4\u03b1 \u03b2\u03ae\u03bc\u03b1\u03c4\u03b1 \u03ba\u03b1\u03b9 \u03c4\u03b9\u03c2 \u03b5\u03c0\u03b9\u03bb\u03bf\u03b3\u03ad\u03c2 \u03c0\u03bf\u03c5 \u03ad\u03c7\u03bf\u03c5\u03bc\u03b5 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03bf\u03c5\u03bc\u03b5 \u03c4\u03bf auditing \u03c3\u03b5 \u03bc\u03af\u03b1 Oracle Database. \u039c\u03ad\u03c3\u03b1 \u03b1\u03c0\u03cc \u03c4\u03bf auditing \u03bc\u03c0\u03bf\u03c1\u03bf\u03cd\u03bc\u03b5 \u03bd\u03b1 \u03ba\u03b1\u03c4\u03b1\u03b3\u03c1\u03ac\u03c6\u03bf\u03c5\u03bc\u03b5 \u03c0\u03bf\u03b9\u03bf\u03c2 \u03ba\u03b1\u03b9 \u03bc\u03b5 \u03c4\u03b9 \u03c4\u03c1\u03cc\u03c0\u03bf \u03ba\u03ac\u03bd\u03b5\u03b9 \u03c0\u03c1\u03bf\u03c3\u03c0\u03ad\u03bb\u03b1\u03c3\u03b7 \u03ae \u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2 \u03c3\u03c4\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03c4\u03b7\u03c2. \u03a4\u03bf auditing \u03bc\u03c0\u03bf\u03c1\u03bf\u03cd\u03bc\u03b5 \u03bd\u03b1 \u03c4\u03bf \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03ae\u03c3\u03bf\u03c5\u03bc\u03b5 \u03c0\u03ac\u03bd\u03c9 \u03c3\u03b5 \u03c3\u03c5\u03b3\u03ba\u03b5\u03ba\u03c1\u03b9\u03bc\u03ad\u03bd\u03bf\u03c5\u03c2 \u03c7\u03c1\u03ae\u03c3\u03c4\u03b5\u03c2, \u03c3\u03b5 \u03c3\u03c5\u03b3\u03ba\u03b5\u03ba\u03c1\u03b9\u03bc\u03ad\u03bd\u03b1 objects \u03ae [&hellip;]","og_url":"https:\/\/www.dataplatform.gr\/en\/pos-energopoioyme-to-auditing-se-oracle-database\/","og_site_name":"DataPlatform.gr","article_publisher":"https:\/\/www.facebook.com\/dataplatform.gr\/","article_published_time":"2021-04-19T06:00:00+00:00","article_modified_time":"2024-06-18T14:52:45+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_oracle.png","type":"image\/png"}],"author":"Stratos Matzouranis","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Stratos Matzouranis","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-auditing-se-oracle-database\/#article","isPartOf":{"@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-auditing-se-oracle-database\/"},"author":{"name":"Stratos Matzouranis","@id":"https:\/\/www.dataplatform.gr\/#\/schema\/person\/e87bf4fd02b65cb6aa0942f87245bbaf"},"headline":"\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf auditing \u03c3\u03b5 Oracle Database","datePublished":"2021-04-19T06:00:00+00:00","dateModified":"2024-06-18T14:52:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-auditing-se-oracle-database\/"},"wordCount":158,"commentCount":0,"publisher":{"@id":"https:\/\/www.dataplatform.gr\/#organization"},"image":{"@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-auditing-se-oracle-database\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_oracle.png","keywords":["Auditing","Databases","Oracle Database","RDBMS"],"articleSection":["Databases","Oracle Database"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-auditing-se-oracle-database\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-auditing-se-oracle-database\/","url":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-auditing-se-oracle-database\/","name":"\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf auditing \u03c3\u03b5 Oracle Database - DataPlatform.gr","isPartOf":{"@id":"https:\/\/www.dataplatform.gr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-auditing-se-oracle-database\/#primaryimage"},"image":{"@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-auditing-se-oracle-database\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_oracle.png","datePublished":"2021-04-19T06:00:00+00:00","dateModified":"2024-06-18T14:52:45+00:00","breadcrumb":{"@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-auditing-se-oracle-database\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-auditing-se-oracle-database\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-auditing-se-oracle-database\/#primaryimage","url":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_oracle.png","contentUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_oracle.png","width":1280,"height":720},{"@type":"BreadcrumbList","@id":"https:\/\/www.dataplatform.gr\/pos-energopoioyme-to-auditing-se-oracle-database\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u0391\u03c1\u03c7\u03b9\u03ba\u03ae","item":"https:\/\/www.dataplatform.gr\/"},{"@type":"ListItem","position":2,"name":"Databases","item":"https:\/\/www.dataplatform.gr\/category\/databases\/"},{"@type":"ListItem","position":3,"name":"Oracle Database","item":"https:\/\/www.dataplatform.gr\/category\/databases\/oracle-db\/"},{"@type":"ListItem","position":4,"name":"\u03a0\u03ce\u03c2 \u03b5\u03bd\u03b5\u03c1\u03b3\u03bf\u03c0\u03bf\u03b9\u03bf\u03cd\u03bc\u03b5 \u03c4\u03bf auditing \u03c3\u03b5 Oracle Database"}]},{"@type":"WebSite","@id":"https:\/\/www.dataplatform.gr\/#website","url":"https:\/\/www.dataplatform.gr\/","name":"dataplatform.gr - Sky is not the limit!","description":"\u0398\u03b5\u03c9\u03c1\u03af\u03b1, \u03bf\u03b4\u03b7\u03b3\u03bf\u03af \u03ba\u03b1\u03b9 \u03c3\u03ba\u03ad\u03c8\u03b5\u03b9\u03c2 \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03ba\u03ac\u03bd\u03b5\u03c4\u03b5 \u03c4\u03b7 \u03b4\u03bf\u03c5\u03bb\u03b5\u03b9\u03ac \u03c3\u03b1\u03c2 \u03c0\u03b9\u03bf \u03c0\u03b1\u03c1\u03b1\u03b3\u03c9\u03b3\u03b9\u03ba\u03ac \u03ba\u03b1\u03b9 \u03c0\u03b9\u03bf \u03b5\u03cd\u03ba\u03bf\u03bb\u03b1 \u03c0\u03ac\u03bd\u03c9 \u03c3\u03c4\u03b9\u03c2 \u03b2\u03ac\u03c3\u03b5\u03b9\u03c2 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03c9\u03bd, \u03c3\u03c4\u03b7\u03bd SQL, \u03c3\u03c4\u03bf Business Intelligence \u03ba\u03b1\u03b9 \u03c3\u03c4\u03b1 \u03b4\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03b1 \u03b3\u03b5\u03bd\u03b9\u03ba\u03cc\u03c4\u03b5\u03c1\u03b1.","publisher":{"@id":"https:\/\/www.dataplatform.gr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dataplatform.gr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.dataplatform.gr\/#organization","name":"dataplatform.gr","url":"https:\/\/www.dataplatform.gr\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dataplatform.gr\/#\/schema\/logo\/image\/","url":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_logo_wbacki.png","contentUrl":"https:\/\/www.dataplatform.gr\/wp-content\/uploads\/2020\/06\/dp_logo_wbacki.png","width":322,"height":139,"caption":"dataplatform.gr"},"image":{"@id":"https:\/\/www.dataplatform.gr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/dataplatform.gr\/","https:\/\/www.linkedin.com\/company\/dataplatform-gr\/"]},{"@type":"Person","@id":"https:\/\/www.dataplatform.gr\/#\/schema\/person\/e87bf4fd02b65cb6aa0942f87245bbaf","name":"Stratos Matzouranis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ab973bc4bd1673c43d45de5633a624d9ad13c06902dfdd5a6e3fd9885903865e?s=96&d=mm&r=g","caption":"Stratos Matzouranis"},"sameAs":["https:\/\/www.dataplatform.gr"],"url":"https:\/\/www.dataplatform.gr\/en\/author\/stratos-matzouranis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts\/3212","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/comments?post=3212"}],"version-history":[{"count":8,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts\/3212\/revisions"}],"predecessor-version":[{"id":5751,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/posts\/3212\/revisions\/5751"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/media\/704"}],"wp:attachment":[{"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/media?parent=3212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/categories?post=3212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dataplatform.gr\/en\/wp-json\/wp\/v2\/tags?post=3212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}