{"id":872,"date":"2014-10-07T10:59:03","date_gmt":"2014-10-07T13:59:03","guid":{"rendered":"http:\/\/www.dbarj.com.br\/?p=872"},"modified":"2014-10-14T00:20:30","modified_gmt":"2014-10-14T03:20:30","slug":"retrieve-oracle-sysdba-audit-os-files-inside-table","status":"publish","type":"post","link":"https:\/\/www.dbarj.com.br\/en\/2014\/10\/retrieve-oracle-sysdba-audit-os-files-inside-table\/","title":{"rendered":"Retrieve oracle sysdba audit from table"},"content":{"rendered":"<p>Oracle will always generate audit files for some <strong>SYSDBA<\/strong> operations in <em>audit_file_dest<\/em>, no matter what you do. As <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; If audit_sys_operations is currently set to TRUE, many files will be created in audit_file_dest by SYSDBA user activity.<\/p>\n<p>In this article, I will explain and show you how to read this information easily within an Oracle table.<\/p>\n<p>I will divide it in 3 steps:<\/p>\n<ol>\n<li>Create a shell script process to generate temporary aud files in &#8220;loader&#8221; format.<\/li>\n<li>Create a external table and a view to dynamically read this contents.<\/li>\n<li>Create a crontab job to minutely convert new generated audit files.<\/li>\n<\/ol>\n<p>So let&#8217;s begin. First of all, create a folder on your OS to keep the shell script and the converted audit files.<\/p>\n<p>In this example, my folder for audit script is <strong>\/home\/oracle\/audsys<\/strong> and I will keep the transformed files in <strong>\/home\/oracle\/audsys\/out<\/strong>. My audit_file_dest is &#8220;<em><strong>\/u02\/admin\/orcl\/adump<\/strong><\/em>&#8220;.<\/p>\n<p>The script below will convert the audit files from lines to columns with fields separator:<\/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>Run the script to generate the initial files. The first run can take a while. After the first, the next executions will be differential.<\/p>\n<p>On the next step, we are creating the directory pointing to our temp folder:<\/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>Now, it&#8217;s time to create the external table:<\/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 here that we use the &#8220;<strong>fields terminated by &#8216;|||&#8217;<\/strong>&#8220;, the same pattern used\u00a0on the shell script above. Some\u00a0fileds are also enclosed by <strong>X&#8217;27&#8217;<\/strong>, the HEX value for &#8220;<em>single quotation<\/em>&#8220;. The &#8220;location&#8221; must be a null file (and it must exist) as we are going to use the preprocessor script, that will &#8220;cat&#8221; all the files dinamically inside the the temporary folder.<\/p>\n<p>Let&#8217;s check the output for the table:<\/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>Good, everything is working. I can create now a view to convert the LOGDATE column from <strong>varchar2<\/strong> to <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>The last step is to schedule the shell to run every X minutes. So we will have our table always updated table with the latest SYSDBA actions:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\">[oracle@serveraudsys]$ crontab -l\r\n*\/5 * * * * \/home\/oracle\/audsys\/procaud.sh<\/pre>\n<b>Have you enjoyed? Please leave a comment or give a \ud83d\udc4d!<\/b>\n<div class='watch-action'><div class='watch-position align-left'><div class='action-like'><a class='lbg-style2 like-872 jlk' href='javascript:void(0)' data-task='like' data-post_id='872' 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-872 lc'>+8<\/span><\/a><\/div><\/div> <div class='status-872 status align-left'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>Oracle will always generate audit files for some SYSDBA operations in audit_file_dest, no matter what you do. As Doc ID 1528170.1, &#8220;Some auditing of SYSDBA is mandatory and cannot be disabled (STARTUP, SHUTDOWN, and CONNECT).&#8221; If audit_sys_operations is currently set to TRUE, many files will be created in audit_file_dest by SYSDBA user activity. In this &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/www.dbarj.com.br\/en\/2014\/10\/retrieve-oracle-sysdba-audit-os-files-inside-table\/\">Continue reading<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[],"class_list":["post-872","post","type-post","status-publish","format-standard","hentry","category-security-en","item-wrap"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Retrieve oracle sysdba audit from table - DBA - Rodrigo Jorge - Oracle Tips and Guides<\/title>\n<meta name=\"description\" content=\"How to retrieve information from the SYSDBA audited operations within an Oracle table.\" \/>\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\/en\/2014\/10\/retrieve-oracle-sysdba-audit-os-files-inside-table\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DBA RJ\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/10\\\/retrieve-oracle-sysdba-audit-os-files-inside-table\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/10\\\/retrieve-oracle-sysdba-audit-os-files-inside-table\\\/\"},\"author\":{\"name\":\"DBA RJ\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"headline\":\"Retrieve oracle sysdba audit from table\",\"datePublished\":\"2014-10-07T13:59:03+00:00\",\"dateModified\":\"2014-10-14T03:20:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/10\\\/retrieve-oracle-sysdba-audit-os-files-inside-table\\\/\"},\"wordCount\":364,\"commentCount\":27,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"articleSection\":[\"Database Security\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/10\\\/retrieve-oracle-sysdba-audit-os-files-inside-table\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/10\\\/retrieve-oracle-sysdba-audit-os-files-inside-table\\\/\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/10\\\/retrieve-oracle-sysdba-audit-os-files-inside-table\\\/\",\"name\":\"Retrieve oracle sysdba audit from table - DBA - Rodrigo Jorge - Oracle Tips and Guides\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#website\"},\"datePublished\":\"2014-10-07T13:59:03+00:00\",\"dateModified\":\"2014-10-14T03:20:30+00:00\",\"description\":\"How to retrieve information from the SYSDBA audited operations within an Oracle table.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/10\\\/retrieve-oracle-sysdba-audit-os-files-inside-table\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/10\\\/retrieve-oracle-sysdba-audit-os-files-inside-table\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2014\\\/10\\\/retrieve-oracle-sysdba-audit-os-files-inside-table\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Retrieve oracle sysdba audit from table\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/\",\"name\":\"DBA - Rodrigo Jorge - Oracle Tips and Guides\",\"description\":\"Blog about Databases, Security and High Availability\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\",\"name\":\"DBA RJ\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@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":"Retrieve oracle sysdba audit from table - DBA - Rodrigo Jorge - Oracle Tips and Guides","description":"How to retrieve information from the SYSDBA audited operations within an Oracle table.","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\/en\/2014\/10\/retrieve-oracle-sysdba-audit-os-files-inside-table\/","twitter_misc":{"Written by":"DBA RJ","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbarj.com.br\/en\/2014\/10\/retrieve-oracle-sysdba-audit-os-files-inside-table\/#article","isPartOf":{"@id":"https:\/\/www.dbarj.com.br\/en\/2014\/10\/retrieve-oracle-sysdba-audit-os-files-inside-table\/"},"author":{"name":"DBA RJ","@id":"https:\/\/www.dbarj.com.br\/en\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"headline":"Retrieve oracle sysdba audit from table","datePublished":"2014-10-07T13:59:03+00:00","dateModified":"2014-10-14T03:20:30+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbarj.com.br\/en\/2014\/10\/retrieve-oracle-sysdba-audit-os-files-inside-table\/"},"wordCount":364,"commentCount":27,"publisher":{"@id":"https:\/\/www.dbarj.com.br\/en\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"articleSection":["Database Security"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbarj.com.br\/en\/2014\/10\/retrieve-oracle-sysdba-audit-os-files-inside-table\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbarj.com.br\/en\/2014\/10\/retrieve-oracle-sysdba-audit-os-files-inside-table\/","url":"https:\/\/www.dbarj.com.br\/en\/2014\/10\/retrieve-oracle-sysdba-audit-os-files-inside-table\/","name":"Retrieve oracle sysdba audit from table - DBA - Rodrigo Jorge - Oracle Tips and Guides","isPartOf":{"@id":"https:\/\/www.dbarj.com.br\/en\/#website"},"datePublished":"2014-10-07T13:59:03+00:00","dateModified":"2014-10-14T03:20:30+00:00","description":"How to retrieve information from the SYSDBA audited operations within an Oracle table.","breadcrumb":{"@id":"https:\/\/www.dbarj.com.br\/en\/2014\/10\/retrieve-oracle-sysdba-audit-os-files-inside-table\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbarj.com.br\/en\/2014\/10\/retrieve-oracle-sysdba-audit-os-files-inside-table\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbarj.com.br\/en\/2014\/10\/retrieve-oracle-sysdba-audit-os-files-inside-table\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.dbarj.com.br\/en\/"},{"@type":"ListItem","position":2,"name":"Retrieve oracle sysdba audit from table"}]},{"@type":"WebSite","@id":"https:\/\/www.dbarj.com.br\/en\/#website","url":"https:\/\/www.dbarj.com.br\/en\/","name":"DBA - Rodrigo Jorge - Oracle Tips and Guides","description":"Blog about Databases, Security and High Availability","publisher":{"@id":"https:\/\/www.dbarj.com.br\/en\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbarj.com.br\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.dbarj.com.br\/en\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9","name":"DBA RJ","image":{"@type":"ImageObject","inLanguage":"en-US","@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\/en\/wp-json\/wp\/v2\/posts\/872","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/comments?post=872"}],"version-history":[{"count":0,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/posts\/872\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/media?parent=872"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/categories?post=872"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/tags?post=872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}