{"id":875,"date":"2014-10-07T11:52:00","date_gmt":"2014-10-07T14:52:00","guid":{"rendered":"http:\/\/www.dbarj.com.br\/?p=875"},"modified":"2014-10-14T00:19:35","modified_gmt":"2014-10-14T03:19:35","slug":"recuperar-auditoria-oracle-de-sysdba-por-tabela","status":"publish","type":"post","link":"https:\/\/www.dbarj.com.br\/pt-br\/2014\/10\/recuperar-auditoria-oracle-de-sysdba-por-tabela\/","title":{"rendered":"Recuperar auditoria oracle de sysdba em tabela"},"content":{"rendered":"<p>O Oracle vai sempre gerar auditoria para algumas opera\u00e7\u00f5es de <strong>SYSDBA<\/strong> no <em>audit_file_dest<\/em>, mesmo que voc\u00ea tente evit\u00e1-la. De acordo com o <a href=\"https:\/\/support.oracle.com\/epmos\/faces\/DocumentDisplay?id=1068714.6\">Doc ID 1528170.1<\/a>, &#8220;Some auditing of SYSDBA is mandatory and cannot be disabled (STARTUP, SHUTDOWN, and CONNECT).&#8221; Se o par\u00e2metro audit_sys_operations estiver TRUE, muitos arquivos ser\u00e3o gerados no audit_file_dest pela atividade dos usu\u00e1rios SYSDBA.<\/p>\n<p>Neste artigo, irei explicar e demonstrar facilmente como ler essa informa\u00e7\u00e3o por dentro de uma tabela Oracle.<\/p>\n<p>Irei dividir em 3 etapas:<\/p>\n<ol>\n<li>Criar um shell script para gerar arquivos aud tempor\u00e1rios no formato de &#8220;loader&#8221;.<\/li>\n<li>Criar uma tabela externa e uma view para ler dinamicamente esse conte\u00fado.<\/li>\n<li>Criar um job na crontab para converter a cada tantos minutos os novos audits gerados.<\/li>\n<\/ol>\n<p>Ent\u00e3o vamos come\u00e7ar. Primeiro de tudo, cria uma tabela no SO para manter o shell script e os arquivos de audit convertidos.<\/p>\n<p>Neste exemplo, a pasta para o script de audit \u00e9 a <strong>\/home\/oracle\/audsys<\/strong> e eu irei manter os arquivos transformados na <strong>\/home\/oracle\/audsys\/out<\/strong>. O meu audit_file_dest \u00e9 &#8220;<em><strong>\/u02\/admin\/orcl\/adump<\/strong><\/em>&#8220;.<\/p>\n<p>O script abaixo ir\u00e1 converter os arquivos de audit do formato de linha para o formato de coluna com separa\u00e7\u00e3o de campos:<\/p>\n<pre class=\"show-lang:1 lang:sh decode:true\" title=\"procaud.sh\">#! \/bin\/ksh\r\n# Created by Rodrigo Jorge (www.dbarj.com.br) in Oct\/2014\r\n\r\naudfiles=\/u02\/admin\/orcl\/adump\/*.aud\r\noutfolder=\/home\/oracle\/audsys\/out\r\noutsufix=\".ext\" # Sufix for temp files\r\n\r\nprocfile ()\r\n{\r\n  cont=0\r\n  seq=1\r\n  delim=\"|||\"\r\n  ifile=$1\r\n  ofile=$2\r\n\r\n  rm -f $ofile\r\n\r\n  while read var; do\r\n\r\n    if [[ $var == ACTION* ]]\r\n    then\r\n      cont=1\r\n      result=\"${linha_2ant}${delim}$(echo $linha_ant | sed 's\/^[^:]*: \/\/')\"\r\n    fi\r\n\r\n    if [ $cont -ge 1 -a $cont -le 7 ]\r\n    then\r\n      if [[ $cont == 2 ]] &amp;&amp; [[ $var != DATABASE* ]]\r\n      then\r\n         result=\"${result} ${var}\"\r\n      else\r\n         result=${result}${delim}$(echo $var | sed 's\/^[^:]*:\\[[0-9]*\\] \/\/')\r\n         cont=$((cont+1))\r\n      fi\r\n    fi\r\n\r\n    if [[ $cont == 8 ]]\r\n    then\r\n      cont=0\r\n      result=\"${result}${delim}$(basename $ifile)${delim}${seq}\"\r\n      seq=$((seq+1))\r\n      echo $result &gt;&gt; $ofile\r\n    fi\r\n\r\n    linha_2ant=$linha_ant\r\n    linha_ant=$var\r\n\r\n  done &lt;$ifile\r\n}\r\n\r\nfor f in $audfiles\r\ndo\r\n  outfile=$outfolder\/$(basename $f)${outsufix}\r\n  if [ ! -f $outfile -o \"$outfile\" -ot \"$f\" ]\r\n  then\r\n        procfile $f $outfile\r\n        touch -m -r $f $outfile\r\n  fi\r\ndone\r\n\r\nshfile=${outfolder}\/catfiles.sh\r\n[ ! -f $shfile ] &amp;&amp; echo \"$(which cat) ${outfolder}\/*.aud${outsufix}\" &gt; $shfile\r\n[ ! -x $shfile ] &amp;&amp; chmod +x $shfile\r\necho &gt; $outfolder\/null.txt<\/pre>\n<p>Execute o script para criar os arquivos iniciais. A primeira execu\u00e7\u00e3o pode demorar um pouco. Ap\u00f3s a primeira, as seguintes ser\u00e3o diferenciais.<\/p>\n<p>No pr\u00f3ximo passo, vamos criar um diret\u00f3rio apontando para a nossa pasta tempor\u00e1ria:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"oracledb\">SQL&gt; CREATE DIRECTORY AUDSYSDIR AS '\/home\/oracle\/audsys\/out';\r\n\r\nDirectory created.\r\n\r\nSQL&gt;<\/pre>\n<p>Agora, vamos criar a tabela externa:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"oracledb\">CREATE TABLE TB_AUDSYS\r\n(\r\n   LOGDATE VARCHAR2(2000),\r\n   LENGTH NUMBER,\r\n   ACTION CLOB,\r\n   DATABASE_USER VARCHAR2(30),\r\n   PRIVILEGE VARCHAR2(2000),\r\n   CLIENT_USER VARCHAR2(2000),\r\n   CLIENT_TERMINAL VARCHAR2(2000),\r\n   STATUS NUMBER,\r\n   DBID NUMBER,\r\n   FILENAME VARCHAR2(2000),\r\n   SEQ NUMBER\r\n)\r\nORGANIZATION EXTERNAL\r\n(\r\n   TYPE ORACLE_LOADER\r\n   DEFAULT DIRECTORY AUDSYSDIR\r\n   ACCESS PARAMETERS\r\n   (\r\n      records delimited by newline\r\n      preprocessor audsysdir:'catfiles.sh'\r\n      badfile audsysdir:'query%a_%p.bad'\r\n      logfile audsysdir:'query%a_%p.log'\r\n      fields terminated by '|||'\r\n      missing field values are null\r\n      (\r\n         LOGDATE CHAR(2000),\r\n         LENGTH CHAR(2000) enclosed by X'27',\r\n         ACTION CHAR(100000),\r\n         DATABASE_USER CHAR(2000) enclosed by X'27',\r\n         PRIVILEGE CHAR(2000) enclosed by X'27',\r\n         CLIENT_USER CHAR(2000) enclosed by X'27',\r\n         CLIENT_TERMINAL CHAR(2000) enclosed by X'27',\r\n         STATUS CHAR(2000) enclosed by X'27',\r\n         DBID CHAR(2000) enclosed by X'27',\r\n         FILENAME CHAR(2000),\r\n         SEQ CHAR(2000)\r\n      )\r\n   )\r\n   LOCATION ('null.txt')\r\n)\r\nPARALLEL\r\nREJECT LIMIT 0;<\/pre>\n<p>Note que aqui usamos como separados de campos o &#8220;<strong>fields terminated by &#8216;|||&#8217;<\/strong>&#8220;, que \u00e9 o mesmo utilizado no shell script acima. Alguns\u00a0campos est\u00e3o isolados pelo caractere <strong>X&#8217;27&#8217;<\/strong>, valor Hexadecimal para &#8220;<em>aspas simples<\/em>&#8220;. O &#8220;location&#8221; precisa ser um arquivo vazio (ele precisa existir) j\u00e1 que irei usar um script &#8220;preprocessor&#8221;. Este script far\u00e1 um &#8220;cat&#8221; dinamicamente de todos os arquivos existentes dentro da pasta tempor\u00e1ria.<\/p>\n<p>Vamos verificar o conte\u00fado da tabela:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">SQL&gt; set lines 1000 pages 1000 wrap off\r\nSQL&gt; col logdate format a32\r\nSQL&gt; col length format 9999\r\nSQL&gt; col action format a30\r\nSQL&gt; col database_user format a15\r\nSQL&gt; col privilege format a7\r\nSQL&gt; col client_user format a20\r\nSQL&gt; col client_terminal format a5\r\nSQL&gt; col status format 9999\r\nSQL&gt; col dbid format 9999999999\r\nSQL&gt; col filename format a15\r\nSQL&gt; col seq format 999\r\nSQL&gt; select * from tb_audsys sample (1);\r\n\r\nLOGDATE                          LENGTH ACTION                         DATABASE_USER   PRIVILE CLIENT_USER          CLIEN STATUS        DBID FILENAME         SEQ\r\n-------------------------------- ------ ------------------------------ --------------- ------- -------------------- ----- ------ ----------- --------------- ----\r\nWed Oct 1 16:26:34 2014 -03:00      169 'CONNECT'                      \/               NONE    emc12                Not A   1017  2044245708 sirac_ora_15997    2\r\nSun Oct 12 16:26:48 2014 -03:00     155 'CONNECT'                      \/               NONE    emc12                        1017  2044245708 sirac_ora_20302    1\r\nMon Sep 29 14:29:29 2014 -03:00     166 'CONNECT'                      MDOXDBA         SYSDBA  oracle               pts\/0      0  2044245708 sirac_ora_29181    1\r\nSat Oct 11 16:26:38 2014 -03:00     155 'CONNECT'                      \/               NONE    emc12                        1017  2044245708 sirac_ora_45362    1\r\nMon Sep 29 16:53:30 2014 -03:00     166 'CONNECT'                      MDOXDBA         SYSDBA  oracle               pts\/1      0  2044245708 sirac_ora_53002    1\r\nThu Sep 18 03:00:03 2014 -03:00     165 'CONNECT'                      RMANBACKUP      SYSDBA  oracle                          0  2044245708 sirac_ora_57015    1\r\nThu Oct 2 16:26:33 2014 -03:00      169 'CONNECT'                      \/               NONE    emc12                Not A   1017  2044245708 sirac_ora_62200    2\r\nFri Oct 10 16:26:37 2014 -03:00     155 'CONNECT'                      \/               NONE    emc12                        1017  2044245708 sirac_ora_63673    1\r\n\r\n8 rows selected.\r\n\r\nSQL&gt;<\/pre>\n<p>\u00d3timo, est\u00e1 tudo funcionando. Posso criar agora uma view para converter a coluna LOGDATA de <strong>varchar2<\/strong> para <strong>timestamp<\/strong>:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"oracledb\">CREATE VIEW VW_AUDSYS AS\r\nSELECT TO_TIMESTAMP_TZ(SUBSTR(LOGDATE, 5), 'Mon fmDDfm hh24:mi:ss YYYY TZH:TZM') LOG_TZ,\r\n       LENGTH,\r\n       TO_CHAR(SUBSTR(ACTION,1,4000)) ACTION,\r\n       DATABASE_USER,\r\n       PRIVILEGE,\r\n       CLIENT_USER,\r\n       CLIENT_TERMINAL,\r\n       STATUS,\r\n       DBID,\r\n       FILENAME,\r\n       SEQ\r\nFROM   TB_AUDSYS;<\/pre>\n<p>O \u00faltimo passo \u00e9 agendar o shell para executar a cada X minutos. Desta forma, iremos ter a tabela sempre atualizada com as \u00faltimas a\u00e7\u00f5es do SYSDBA:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\">[oracle@serveraudsys]$ crontab -l\r\n*\/5 * * * * \/home\/oracle\/audsys\/procaud.sh<\/pre>\n<b>Gostou? N\u00e3o deixe de comentar ou deixar um \ud83d\udc4d!<\/b>\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style2 like-875 jlk' href='javascript:void(0)' data-task='like' data-post_id='875' data-nonce='de4404f630' rel='nofollow'><img class='wti-pixel' src='https:\/\/www.dbarj.com.br\/wp-content\/plugins\/wti-like-post\/images\/pixel.gif' title='Like' \/><span class='lc-875 lc'>+3<\/span><\/a><\/div><\/div> <div class='status-875 status align-left'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>O Oracle vai sempre gerar auditoria para algumas opera\u00e7\u00f5es de SYSDBA no audit_file_dest, mesmo que voc\u00ea tente evit\u00e1-la. De acordo com o Doc ID 1528170.1, &#8220;Some auditing of SYSDBA is mandatory and cannot be disabled (STARTUP, SHUTDOWN, and CONNECT).&#8221; Se o par\u00e2metro audit_sys_operations estiver TRUE, muitos arquivos ser\u00e3o gerados no audit_file_dest pela atividade dos usu\u00e1rios &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/www.dbarj.com.br\/pt-br\/2014\/10\/recuperar-auditoria-oracle-de-sysdba-por-tabela\/\">Continue lendo<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19],"tags":[],"class_list":["post-875","post","type-post","status-publish","format-standard","hentry","category-security","item-wrap"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Recuperar auditoria oracle de sysdba em tabela - DBA - Rodrigo Jorge - Oracle Tips and Guides<\/title>\n<meta name=\"description\" content=\"Como recuperar informa\u00e7\u00f5es das opera\u00e7\u00f5es SYSDBA auditadas dentro de uma tabela Oracle.\" \/>\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.dbarj.com.br\/pt-br\/2014\/10\/recuperar-auditoria-oracle-de-sysdba-por-tabela\/\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"DBA RJ\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2014\\\/10\\\/recuperar-auditoria-oracle-de-sysdba-por-tabela\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2014\\\/10\\\/recuperar-auditoria-oracle-de-sysdba-por-tabela\\\/\"},\"author\":{\"name\":\"DBA RJ\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"headline\":\"Recuperar auditoria oracle de sysdba em tabela\",\"datePublished\":\"2014-10-07T14:52:00+00:00\",\"dateModified\":\"2014-10-14T03:19:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2014\\\/10\\\/recuperar-auditoria-oracle-de-sysdba-por-tabela\\\/\"},\"wordCount\":387,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"articleSection\":[\"Database Security\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2014\\\/10\\\/recuperar-auditoria-oracle-de-sysdba-por-tabela\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2014\\\/10\\\/recuperar-auditoria-oracle-de-sysdba-por-tabela\\\/\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2014\\\/10\\\/recuperar-auditoria-oracle-de-sysdba-por-tabela\\\/\",\"name\":\"Recuperar auditoria oracle de sysdba em tabela - DBA - Rodrigo Jorge - Oracle Tips and Guides\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/#website\"},\"datePublished\":\"2014-10-07T14:52:00+00:00\",\"dateModified\":\"2014-10-14T03:19:35+00:00\",\"description\":\"Como recuperar informa\u00e7\u00f5es das opera\u00e7\u00f5es SYSDBA auditadas dentro de uma tabela Oracle.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2014\\\/10\\\/recuperar-auditoria-oracle-de-sysdba-por-tabela\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2014\\\/10\\\/recuperar-auditoria-oracle-de-sysdba-por-tabela\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2014\\\/10\\\/recuperar-auditoria-oracle-de-sysdba-por-tabela\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Recuperar auditoria oracle de sysdba em tabela\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/#website\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/\",\"name\":\"DBA - Rodrigo Jorge - Oracle Tips and Guides\",\"description\":\"Blog about Databases, Security and High Availability\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\",\"name\":\"DBA RJ\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\",\"contentUrl\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\",\"width\":712,\"height\":712,\"caption\":\"DBA RJ\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/wp-content\\\/uploads\\\/2019\\\/09\\\/RodrigoJorgePOUG19.png\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Recuperar auditoria oracle de sysdba em tabela - DBA - Rodrigo Jorge - Oracle Tips and Guides","description":"Como recuperar informa\u00e7\u00f5es das opera\u00e7\u00f5es SYSDBA auditadas dentro de uma tabela Oracle.","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.dbarj.com.br\/pt-br\/2014\/10\/recuperar-auditoria-oracle-de-sysdba-por-tabela\/","twitter_misc":{"Escrito por":"DBA RJ","Est. tempo de leitura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbarj.com.br\/pt-br\/2014\/10\/recuperar-auditoria-oracle-de-sysdba-por-tabela\/#article","isPartOf":{"@id":"https:\/\/www.dbarj.com.br\/pt-br\/2014\/10\/recuperar-auditoria-oracle-de-sysdba-por-tabela\/"},"author":{"name":"DBA RJ","@id":"https:\/\/www.dbarj.com.br\/pt-br\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"headline":"Recuperar auditoria oracle de sysdba em tabela","datePublished":"2014-10-07T14:52:00+00:00","dateModified":"2014-10-14T03:19:35+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbarj.com.br\/pt-br\/2014\/10\/recuperar-auditoria-oracle-de-sysdba-por-tabela\/"},"wordCount":387,"commentCount":0,"publisher":{"@id":"https:\/\/www.dbarj.com.br\/pt-br\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"articleSection":["Database Security"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbarj.com.br\/pt-br\/2014\/10\/recuperar-auditoria-oracle-de-sysdba-por-tabela\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbarj.com.br\/pt-br\/2014\/10\/recuperar-auditoria-oracle-de-sysdba-por-tabela\/","url":"https:\/\/www.dbarj.com.br\/pt-br\/2014\/10\/recuperar-auditoria-oracle-de-sysdba-por-tabela\/","name":"Recuperar auditoria oracle de sysdba em tabela - DBA - Rodrigo Jorge - Oracle Tips and Guides","isPartOf":{"@id":"https:\/\/www.dbarj.com.br\/pt-br\/#website"},"datePublished":"2014-10-07T14:52:00+00:00","dateModified":"2014-10-14T03:19:35+00:00","description":"Como recuperar informa\u00e7\u00f5es das opera\u00e7\u00f5es SYSDBA auditadas dentro de uma tabela Oracle.","breadcrumb":{"@id":"https:\/\/www.dbarj.com.br\/pt-br\/2014\/10\/recuperar-auditoria-oracle-de-sysdba-por-tabela\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbarj.com.br\/pt-br\/2014\/10\/recuperar-auditoria-oracle-de-sysdba-por-tabela\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbarj.com.br\/pt-br\/2014\/10\/recuperar-auditoria-oracle-de-sysdba-por-tabela\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.dbarj.com.br\/pt-br\/"},{"@type":"ListItem","position":2,"name":"Recuperar auditoria oracle de sysdba em tabela"}]},{"@type":"WebSite","@id":"https:\/\/www.dbarj.com.br\/pt-br\/#website","url":"https:\/\/www.dbarj.com.br\/pt-br\/","name":"DBA - Rodrigo Jorge - Oracle Tips and Guides","description":"Blog about Databases, Security and High Availability","publisher":{"@id":"https:\/\/www.dbarj.com.br\/pt-br\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbarj.com.br\/pt-br\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":["Person","Organization"],"@id":"https:\/\/www.dbarj.com.br\/pt-br\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9","name":"DBA RJ","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png","url":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png","contentUrl":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png","width":712,"height":712,"caption":"DBA RJ"},"logo":{"@id":"https:\/\/www.dbarj.com.br\/wp-content\/uploads\/2019\/09\/RodrigoJorgePOUG19.png"}}]}},"_links":{"self":[{"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/posts\/875","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/comments?post=875"}],"version-history":[{"count":0,"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/posts\/875\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/media?parent=875"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/categories?post=875"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/tags?post=875"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}