{"id":13737,"date":"2021-04-30T11:57:58","date_gmt":"2021-04-30T14:57:58","guid":{"rendered":"https:\/\/www.dbarj.com.br\/?p=13737"},"modified":"2021-04-30T15:34:04","modified_gmt":"2021-04-30T18:34:04","slug":"new-dba_immutable_tables-view-starting-on-19-11","status":"publish","type":"post","link":"https:\/\/www.dbarj.com.br\/en\/2021\/04\/new-dba_immutable_tables-view-starting-on-19-11\/","title":{"rendered":"New DBA_IMMUTABLE_TABLES view, starting on 19.11"},"content":{"rendered":"<p>If you follow my <a href=\"https:\/\/www.dbarj.com.br\/en\/2021\/04\/dissecting-210420-bp-psu-ru-and-rur\/\" target=\"_blank\" rel=\"noopener\">quarterly dissecting database patches series<\/a>, you will note that on 19.11 (April-2021 CPU) oracle introduced a new <strong>USER\/ALL\/DBA_IMMUTABLE_TABLES<\/strong> view.<\/p>\n<p>This seems to be related with the new blockchain feature, but on 19.10 (the previous RU), oracle have already created <strong>USER\/ALL\/DBA_BLOCKCHAIN_TABLES. <\/strong>In this post I will investigate the differences among them.<\/p>\n<p>So, first checking the official <a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/19\/admin\/managing-tables.html#GUID-2CEEE181-1171-4C18-8604-2F26FC8EC7EA\" target=\"_blank\" rel=\"noopener\">documentation<\/a>, on 19.11 Oracle introduced the concept of &#8220;Immutable Tables&#8221;. We do also have a new syntax for this: <code>CREATE IMMUTABLE TABLE<\/code><\/p>\n<p>Reading further the doc, note this <strong><span style=\"text-decoration: underline;\">is not<\/span><\/strong> a simple alias to the <code>CREATE BLOCKCHAIN TABLE<\/code>command we had before. Immutable and Blockchain have key differences:<\/p>\n<div class=\"table-responsive\">\n<table class=\"Formal\" style=\"width: 100%;\" title=\"Differences Between Immutable Tables and Blockchain Tables\" border=\"1\" summary=\"This table describes the differences between immutable tables and blockchain tables\" frame=\"hsides\" rules=\"rows\" cellspacing=\"0\" cellpadding=\"4\">\n<thead>\n<tr align=\"left\" valign=\"top\">\n<th id=\"d194466e23249\" style=\"width: 51.6%;\" align=\"left\" valign=\"bottom\">Immutable Tables<\/th>\n<th id=\"d194466e23251\" style=\"width: 48.4%;\" align=\"left\" valign=\"bottom\">Blockchain Tables<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr align=\"left\" valign=\"top\">\n<td id=\"d194466e23255\" style=\"width: 51.6%;\" headers=\"d194466e23249 \" align=\"left\" valign=\"top\">Immutable tables prevent unauthorized changes by rogue or compromised insiders who have access to user credentials.<\/td>\n<td style=\"width: 48.4%;\" headers=\"d194466e23255 d194466e23251 \" align=\"left\" valign=\"top\">In addition to preventing unauthorized changes by rogue or compromised insiders, blockchain tables provide the following functionality:<\/p>\n<ul id=\"GUID-55B51BC2-6367-4728-87C2-C30E898DD6FD__UL_DLR_HBX_3PB\">\n<li>detection of unauthorized changes made by bypassing Oracle Database software<\/li>\n<li>detection of end user impersonation and inserting data in a user&#8217;s name but without their authorization<\/li>\n<li>prevention of data tampering and ensuring that data was actually inserted in to the table<\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<tr align=\"left\" valign=\"top\">\n<td id=\"d194466e23283\" style=\"width: 51.6%;\" headers=\"d194466e23249 \" align=\"left\" valign=\"top\">Rows are not chained together.<\/td>\n<td style=\"width: 48.4%;\" headers=\"d194466e23283 d194466e23251 \" align=\"left\" valign=\"top\">Each row, except the first row, is chained to the previous row by using a cryptographic hash. The hash value of a row is computed based on the row data and the hash value of the previous row in the chain.<\/p>\n<p>Any modification to a row breaks the chain, thereby indicating that the row was tampered.<\/td>\n<\/tr>\n<tr align=\"left\" valign=\"top\">\n<td id=\"d194466e23297\" style=\"width: 51.6%;\" headers=\"d194466e23249 \" align=\"left\" valign=\"top\">Inserting rows does not require additional processing at commit time.<\/td>\n<td style=\"width: 48.4%;\" headers=\"d194466e23297 d194466e23251 \" align=\"left\" valign=\"top\">Additional processing time is required, at commit time, to chain rows.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Source: <a href=\"https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/19\/admin\/managing-tables.html#GUID-55B51BC2-6367-4728-87C2-C30E898DD6FD\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.oracle.com\/en\/database\/oracle\/oracle-database\/19\/admin\/managing-tables.html#GUID-55B51BC2-6367-4728-87C2-C30E898DD6FD<\/a><\/p>\n<p>Immutable Tables seems to be a &#8220;lighter version&#8221; of Blockchain tables. The basic difference is that there is no chained rows (and thus, no extra commit time and no detection of changes made bypassing the DB layer as the hash of a new line will not depend on the previous ones).<\/p>\n<p>With no chained rows, technically this would also allow massive parallel inserts which may cover one of the biggest restrictions of blockchain.<\/p>\n<p>Getting the views structure, you can see they are extremely similar:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">SQL&gt; desc DBA_IMMUTABLE_TABLES\r\n Name                                      Null?    Type\r\n ----------------------------------------- -------- ----------------------------\r\n SCHEMA_NAME                               NOT NULL VARCHAR2(128)\r\n TABLE_NAME                                NOT NULL VARCHAR2(128)\r\n ROW_RETENTION                                      NUMBER\r\n ROW_RETENTION_LOCKED                               VARCHAR2(3)\r\n TABLE_INACTIVITY_RETENTION                         NUMBER\r\n\r\nSQL&gt; desc DBA_BLOCKCHAIN_TABLES\r\n Name                                      Null?    Type\r\n ----------------------------------------- -------- ----------------------------\r\n SCHEMA_NAME                               NOT NULL VARCHAR2(128)\r\n TABLE_NAME                                NOT NULL VARCHAR2(128)\r\n ROW_RETENTION                                      NUMBER\r\n ROW_RETENTION_LOCKED                               VARCHAR2(3)\r\n TABLE_INACTIVITY_RETENTION                         NUMBER\r\n HASH_ALGORITHM                                     VARCHAR2(8)<\/pre>\n<p>The single difference is an extra &#8220;<strong>HASH_ALGORITHM<\/strong>&#8221; column on <strong>DBA_BLOCKCHAIN_TABLES<\/strong>, which is not necessary as we are not creating rows hashes.<\/p>\n<p>Regarding their code:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">SQL&gt; set lines 1000 pages 1000 long 1000 longc 1000 pages 0\r\nSQL&gt; select dbms_metadata.get_ddl('VIEW','DBA_IMMUTABLE_TABLES') from dual;\r\n\r\n  CREATE OR REPLACE FORCE NONEDITIONABLE VIEW \"SYS\".\"DBA_IMMUTABLE_TABLES\" (\"SCHEMA_NAME\", \"TABLE_NAME\", \"ROW_RETENTION\", \"ROW_RETENTION_LOCKED\", \"TABLE_INACTIVITY_RETENTION\") AS\r\n  select u.name,\r\n       o.name,\r\n       b.row_retention, decode(bitand(t.spare7, power(2,10)),\r\n                                    power(2,10), 'YES', 'NO'),\r\n       b.table_inactivity_retention\r\n    from sys.obj$ o, sys.user$ u, sys.blockchain_table$ b, sys.tab$ t\r\n    where  o.owner# = u.user# and\r\n           o.obj# = b.obj# and\r\n           o.obj# = t.obj# and bitand(t.spare7,power(2,11)) = power(2,11)\r\n    order by o.obj#\r\n\r\nSQL&gt; select dbms_metadata.get_ddl('VIEW','DBA_BLOCKCHAIN_TABLES') from dual;\r\n\r\n  CREATE OR REPLACE FORCE NONEDITIONABLE VIEW \"SYS\".\"DBA_BLOCKCHAIN_TABLES\" (\"SCHEMA_NAME\", \"TABLE_NAME\", \"ROW_RETENTION\", \"ROW_RETENTION_LOCKED\", \"TABLE_INACTIVITY_RETENTION\", \"HASH_ALGORITHM\") AS\r\n  select u.name,\r\n       o.name,\r\n       b.row_retention, decode(bitand(t.spare7, power(2,10)),\r\n                                                  power(2,10), 'YES', 'NO'),\r\n       b.table_inactivity_retention,\r\n       decode(l.hash_algorithm#, 1, 'SHA2_512', 'NONE')\r\n    from sys.obj$ o, sys.user$ u, sys.blockchain_table_epoch$ l,\r\n         sys.blockchain_table$ b, sys.tab$ t\r\n    where  l.obj# = o.obj# and\r\n           o.owner# = u.user# and\r\n           o.obj# = b.obj# and\r\n           o.obj# = t.obj# and bitand(t.spare7,power(2,7)) = power(2,7)\r\n    order by o.obj#<\/pre>\n<p>They are <strong><span style=\"text-decoration: underline;\">almost<\/span><\/strong> exactly the same. I can see 2 differences:<\/p>\n<ul>\n<li>The &#8220;<strong>HASH_ALGORITHM<\/strong>&#8221; again which implied on the <strong>sys.blockchain_table_epoch$<\/strong> addition.<\/li>\n<li>For the DBA_IMMUTABLE_TABLES, it&#8217;s checking the 11th bit of spare7 for a &#8220;1&#8221; while that for DBA_BLOCKCHAIN_TABLES, it&#8217;s checking the 7th bit.<\/li>\n<\/ul>\n<p>What about default privileges?<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">SQL&gt; select * from dba_tab_privs where table_name in ('DBA_IMMUTABLE_TABLES','DBA_BLOCKCHAIN_TABLES');\r\n\r\nGRANTEE              OWNER  TABLE_NAME             GRANTOR  PRIVILEGE  GRA HIE COM TYPE  INH\r\n-------------------- ------ ---------------------- -------- ---------- --- --- --- ----- ---\r\nSELECT_CATALOG_ROLE  SYS    DBA_BLOCKCHAIN_TABLES  SYS      SELECT     NO  NO  YES VIEW  NO\r\nSELECT_CATALOG_ROLE  SYS    DBA_IMMUTABLE_TABLES   SYS      SELECT     NO  NO  YES VIEW  NO\r\nSQL&gt;<\/pre>\n<p>They are also the same..<\/p>\n<h4>Conclusion<\/h4>\n<p>It seems to me that <strong>Immutable Tables<\/strong> are, generally speaking, the blockchain tables with all that hidden columns (like <code>ORABCTAB_CREATION_TIME$<\/code>) that will ensure that a row will not be deleted (or table be dropped) during the user defined retention period.<\/p>\n<p>Removing the main concept of chained rows (or &#8220;blockchain&#8221;), this will add much more performance power to it, while will remove the key security feature.<\/p>\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-13737 jlk' href='javascript:void(0)' data-task='like' data-post_id='13737' 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-13737 lc'>+5<\/span><\/a><\/div><\/div> <div class='status-13737 status align-left'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>If you follow my quarterly dissecting database patches series, you will note that on 19.11 (April-2021 CPU) oracle introduced a new USER\/ALL\/DBA_IMMUTABLE_TABLES view. This seems to be related with the new blockchain feature, but on 19.10 (the previous RU), oracle have already created USER\/ALL\/DBA_BLOCKCHAIN_TABLES. In this post I will investigate the differences among them. So, &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/www.dbarj.com.br\/en\/2021\/04\/new-dba_immutable_tables-view-starting-on-19-11\/\">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":[15],"tags":[],"class_list":["post-13737","post","type-post","status-publish","format-standard","hentry","category-database-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>New DBA_IMMUTABLE_TABLES view, starting on 19.11 - DBA - Rodrigo Jorge - Oracle Tips and Guides<\/title>\n<meta name=\"description\" content=\"In this post, I explain what are the new *_IMMUTABLE_TABLES views and their difference to the *_BLOCKCHAIN_TABLES views.\" \/>\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\/2021\/04\/new-dba_immutable_tables-view-starting-on-19-11\/\" \/>\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=\"4 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\\\/2021\\\/04\\\/new-dba_immutable_tables-view-starting-on-19-11\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2021\\\/04\\\/new-dba_immutable_tables-view-starting-on-19-11\\\/\"},\"author\":{\"name\":\"DBA RJ\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"headline\":\"New DBA_IMMUTABLE_TABLES view, starting on 19.11\",\"datePublished\":\"2021-04-30T14:57:58+00:00\",\"dateModified\":\"2021-04-30T18:34:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2021\\\/04\\\/new-dba_immutable_tables-view-starting-on-19-11\\\/\"},\"wordCount\":536,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"articleSection\":[\"Oracle Database General\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2021\\\/04\\\/new-dba_immutable_tables-view-starting-on-19-11\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2021\\\/04\\\/new-dba_immutable_tables-view-starting-on-19-11\\\/\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2021\\\/04\\\/new-dba_immutable_tables-view-starting-on-19-11\\\/\",\"name\":\"New DBA_IMMUTABLE_TABLES view, starting on 19.11 - DBA - Rodrigo Jorge - Oracle Tips and Guides\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/#website\"},\"datePublished\":\"2021-04-30T14:57:58+00:00\",\"dateModified\":\"2021-04-30T18:34:04+00:00\",\"description\":\"In this post, I explain what are the new *_IMMUTABLE_TABLES views and their difference to the *_BLOCKCHAIN_TABLES views.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2021\\\/04\\\/new-dba_immutable_tables-view-starting-on-19-11\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2021\\\/04\\\/new-dba_immutable_tables-view-starting-on-19-11\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/2021\\\/04\\\/new-dba_immutable_tables-view-starting-on-19-11\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.dbarj.com.br\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"New DBA_IMMUTABLE_TABLES view, starting on 19.11\"}]},{\"@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":"New DBA_IMMUTABLE_TABLES view, starting on 19.11 - DBA - Rodrigo Jorge - Oracle Tips and Guides","description":"In this post, I explain what are the new *_IMMUTABLE_TABLES views and their difference to the *_BLOCKCHAIN_TABLES views.","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\/2021\/04\/new-dba_immutable_tables-view-starting-on-19-11\/","twitter_misc":{"Written by":"DBA RJ","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbarj.com.br\/en\/2021\/04\/new-dba_immutable_tables-view-starting-on-19-11\/#article","isPartOf":{"@id":"https:\/\/www.dbarj.com.br\/en\/2021\/04\/new-dba_immutable_tables-view-starting-on-19-11\/"},"author":{"name":"DBA RJ","@id":"https:\/\/www.dbarj.com.br\/en\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"headline":"New DBA_IMMUTABLE_TABLES view, starting on 19.11","datePublished":"2021-04-30T14:57:58+00:00","dateModified":"2021-04-30T18:34:04+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbarj.com.br\/en\/2021\/04\/new-dba_immutable_tables-view-starting-on-19-11\/"},"wordCount":536,"commentCount":0,"publisher":{"@id":"https:\/\/www.dbarj.com.br\/en\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"articleSection":["Oracle Database General"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbarj.com.br\/en\/2021\/04\/new-dba_immutable_tables-view-starting-on-19-11\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbarj.com.br\/en\/2021\/04\/new-dba_immutable_tables-view-starting-on-19-11\/","url":"https:\/\/www.dbarj.com.br\/en\/2021\/04\/new-dba_immutable_tables-view-starting-on-19-11\/","name":"New DBA_IMMUTABLE_TABLES view, starting on 19.11 - DBA - Rodrigo Jorge - Oracle Tips and Guides","isPartOf":{"@id":"https:\/\/www.dbarj.com.br\/en\/#website"},"datePublished":"2021-04-30T14:57:58+00:00","dateModified":"2021-04-30T18:34:04+00:00","description":"In this post, I explain what are the new *_IMMUTABLE_TABLES views and their difference to the *_BLOCKCHAIN_TABLES views.","breadcrumb":{"@id":"https:\/\/www.dbarj.com.br\/en\/2021\/04\/new-dba_immutable_tables-view-starting-on-19-11\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbarj.com.br\/en\/2021\/04\/new-dba_immutable_tables-view-starting-on-19-11\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbarj.com.br\/en\/2021\/04\/new-dba_immutable_tables-view-starting-on-19-11\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.dbarj.com.br\/en\/"},{"@type":"ListItem","position":2,"name":"New DBA_IMMUTABLE_TABLES view, starting on 19.11"}]},{"@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\/13737","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=13737"}],"version-history":[{"count":5,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/posts\/13737\/revisions"}],"predecessor-version":[{"id":13881,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/posts\/13737\/revisions\/13881"}],"wp:attachment":[{"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/media?parent=13737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/categories?post=13737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbarj.com.br\/en\/wp-json\/wp\/v2\/tags?post=13737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}