{"id":1284,"date":"2015-01-15T13:30:18","date_gmt":"2015-01-15T16:30:18","guid":{"rendered":"http:\/\/www.dbarj.com.br\/?p=1284"},"modified":"2015-04-01T08:18:47","modified_gmt":"2015-04-01T11:18:47","slug":"limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes","status":"publish","type":"post","link":"https:\/\/www.dbarj.com.br\/pt-br\/2015\/01\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\/","title":{"rendered":"Limitando conex\u00e3o ao Oracle baseado no IP do usu\u00e1rio e outras informa\u00e7\u00f5es"},"content":{"rendered":"<p>Quando a senha de um usu\u00e1rio expira em uma das bases que administro, alguns usu\u00e1rios reclamam que se trata de um usu\u00e1rio de <strong>aplica\u00e7\u00e3o<\/strong> e a senha n\u00e3o pode expirar nunca. Desta forma, se o schema realmente deve ser usado <span style=\"color: #800000; text-decoration: underline;\">apenas pela aplica\u00e7\u00e3o<\/span>, eu criei um processo que ir\u00e1 controlar esse acesso baseado nas informa\u00e7\u00f5es da sess\u00e3o do usuario, que pode ser um ou mais dos seguintes itens:<\/p>\n<ul>\n<li>Hostname do usu\u00e1rio<\/li>\n<li>Usu\u00e1rio de SO<\/li>\n<li>Terminal do usu\u00e1rio<\/li>\n<li>M\u00f3dulo da Aplica\u00e7\u00e3o do usu\u00e1rio<\/li>\n<li>Endere\u00e7o IP do usu\u00e1rio<\/li>\n<\/ul>\n<p>Neste artigo mostrarei o funcionamento deste script. Vamos ent\u00e3o come\u00e7ar:<\/p>\n<p>Ser\u00e1 necess\u00e1rio criar os seguintes objetos:<\/p>\n<ol>\n<li><strong>Profile<\/strong> de usu\u00e1rio de aplica\u00e7\u00e3o<\/li>\n<li><strong>Tabela<\/strong> de controle<\/li>\n<li><strong>Trigger<\/strong> de acesso<\/li>\n<\/ol>\n<p>Primeiramente, eu crie um profile que a senha <span style=\"text-decoration: underline;\"><strong>n\u00e3o expira<\/strong><\/span> e cujos usu\u00e1rios pertencentes a ele passar\u00e3o a ser controlados pela trigger de login:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"oracledb\">CREATE PROFILE \"DEFAULT_APP_USER\"\r\n    LIMIT \r\n         COMPOSITE_LIMIT DEFAULT \r\n         SESSIONS_PER_USER DEFAULT \r\n         CPU_PER_SESSION DEFAULT \r\n         CPU_PER_CALL DEFAULT \r\n         LOGICAL_READS_PER_SESSION DEFAULT \r\n         LOGICAL_READS_PER_CALL DEFAULT \r\n         IDLE_TIME DEFAULT \r\n         CONNECT_TIME DEFAULT \r\n         PRIVATE_SGA DEFAULT \r\n         FAILED_LOGIN_ATTEMPTS 10\r\n         PASSWORD_LIFE_TIME UNLIMITED\r\n         PASSWORD_REUSE_TIME UNLIMITED\r\n         PASSWORD_REUSE_MAX UNLIMITED\r\n         PASSWORD_VERIFY_FUNCTION DEFAULT\r\n         PASSWORD_LOCK_TIME 30\/1440\r\n         PASSWORD_GRACE_TIME UNLIMITED;<\/pre>\n<p><strong>OBS:<\/strong> Note que neste PROFILE, a maior parte dos par\u00e2metros s\u00e3o herdados do profile DEFAULT, exceto a senha que n\u00e3o expira e a tentativa de logins com erro, que s\u00e3o 10 a cada 30 minutos.<\/p>\n<p>Em seguida, devemos criar a tabela (e um \u00edndice) onde voc\u00ea far\u00e1 o controle dos acessos:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"oracledb\">CREATE TABLE TB_FILTER_LOGON\r\n\t(\r\n\tSESSION_USER VARCHAR2(50) NOT NULL,\r\n\tHOST VARCHAR2(50),\r\n\tOS_USER VARCHAR2(50),\r\n\tTERMINAL VARCHAR2(50),\r\n\tMODULE VARCHAR2(50),\r\n\tIP_ADDRESS VARCHAR2(50)\r\n\t)\r\nTABLESPACE USERS;\r\n\r\nCREATE INDEX I1_FILTER_LOGON ON TB_FILTER_LOGON(SESSION_USER) TABLESPACE USERS;<\/pre>\n<p>Nesta tabela, o \u00fanico campo obrigat\u00f3rio \u00e9 o &#8220;<strong>SESSION_USER<\/strong>&#8220;, que representa o usu\u00e1rio que est\u00e1 logando no BD. Os outros campos podem ser preenchidos ou n\u00e3o de acordo com os filtros que deseja ser feito.<\/p>\n<p>A coluna &#8220;SESSION_USER&#8221; tamb\u00e9m <span style=\"text-decoration: underline;\"><strong>n\u00e3o<\/strong><\/span> \u00e9 PK, o que permite que uma combina\u00e7\u00e3o de filtros diferentes possam ser aplicados.<\/p>\n<p>Por fim, crie a trigger que ser\u00e1 usada para controlar o acesso:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"oracledb\">CREATE OR REPLACE TRIGGER TRG_FILTER_LOGON\r\n  AFTER LOGON ON DATABASE\r\nDECLARE\r\n  V_GLOBAL_NAME VARCHAR2(50);\r\n  V_PROFILE     VARCHAR2(50);\r\n  V_CHECK       NUMBER;\r\n  ---\r\n  V_HOST         VARCHAR2(50);\r\n  V_OS_USER      VARCHAR2(50);\r\n  V_TERMINAL     VARCHAR2(50);\r\n  V_MODULE       VARCHAR2(50);\r\n  V_IP_ADDRESS   VARCHAR2(50);\r\n  V_SESSION_USER VARCHAR2(50);\r\nBEGIN\r\n  -- Created by DBA RJ - www.dbarj.com.br - 2015\/01\r\n  -- Get Connection Info\r\n  V_HOST         := SUBSTR(TRIM(UPPER(SYS_CONTEXT('USERENV', 'HOST'))), 1, 50);\r\n  V_OS_USER      := SUBSTR(TRIM(UPPER(SYS_CONTEXT('USERENV', 'OS_USER'))), 1, 50);\r\n  V_TERMINAL     := SUBSTR(TRIM(UPPER(SYS_CONTEXT('USERENV', 'TERMINAL'))), 1, 50);\r\n  V_MODULE       := SUBSTR(TRIM(UPPER(SYS_CONTEXT('USERENV', 'MODULE'))), 1, 50);\r\n  V_IP_ADDRESS   := SUBSTR(TRIM(UPPER(SYS_CONTEXT('USERENV', 'IP_ADDRESS'))), 1, 50);\r\n  V_SESSION_USER := SUBSTR(TRIM(UPPER(SYS_CONTEXT('USERENV', 'SESSION_USER'))), 1, 50);\r\n\r\n  -- Get Database Name\r\n  SELECT GLOBAL_NAME\r\n  INTO   V_GLOBAL_NAME\r\n  FROM   GLOBAL_NAME;\r\n\r\n  -- Get Profile Name\r\n  SELECT PROFILE\r\n  INTO   V_PROFILE\r\n  FROM   DBA_USERS\r\n  WHERE  USERNAME = V_SESSION_USER;\r\n\r\n  IF V_PROFILE = 'DEFAULT_APP_USER'\r\n  THEN\r\n    -- Check\r\n    CASE V_GLOBAL_NAME\r\n      WHEN 'DBFAIRUS' THEN\r\n      \r\n        SELECT TOTAL1 + TOTAL2\r\n        INTO   V_CHECK\r\n        FROM   (SELECT COUNT(*) TOTAL1\r\n                FROM   TB_FILTER_LOGON\r\n                WHERE  TRIM(UPPER(SESSION_USER)) = V_SESSION_USER\r\n                AND    NVL(TRIM(UPPER(HOST)), NVL(V_HOST, 1)) = NVL(V_HOST, 1)\r\n                AND    NVL(TRIM(UPPER(OS_USER)), NVL(V_OS_USER, 1)) = NVL(V_OS_USER, 1)\r\n                AND    NVL(TRIM(UPPER(TERMINAL)), NVL(V_TERMINAL, 1)) = NVL(V_TERMINAL, 1)\r\n                AND    NVL(TRIM(UPPER(MODULE)), NVL(V_MODULE, 1)) = NVL(V_MODULE, 1)\r\n                AND    NVL(TRIM(UPPER(IP_ADDRESS)), NVL(V_IP_ADDRESS, 1)) = NVL(V_IP_ADDRESS, 1)),\r\n               (SELECT DECODE(COUNT(*), 0, 1, 0) TOTAL2 -- If the entry does not exist, will return 1 to unlock the user\r\n                FROM   TB_FILTER_LOGON\r\n                WHERE  TRIM(UPPER(SESSION_USER)) = V_SESSION_USER);\r\n      \r\n        IF (V_CHECK &lt;&gt; 0)\r\n        THEN\r\n          NULL;\r\n          --OK\r\n        ELSE\r\n          --NULL;\r\n          RAISE_APPLICATION_ERROR(-20000, 'YOU ARE NOT AUTHORIZED TO LOGIN WITH THIS USERNAME. PLEASE CONTACT YOUR DBA.');\r\n        END IF;\r\n      ELSE\r\n        NULL;\r\n    END CASE; END IF;\r\nEXCEPTION\r\n  -- Evita erros quando n\u00e3o consegue obter o GLOBAL_NAME ou o PROFILE (Data Guard)\r\n  WHEN NO_DATA_FOUND THEN\r\n    NULL;\r\nEND;\r\n\/<\/pre>\n<h3>Exemplo de cen\u00e1rios:<\/h3>\n<p>1) O usu\u00e1rio <strong>SCOTT<\/strong> pode se conectar apenas:<\/p>\n<ul>\n<li>Do IP 10.192.12.43 com usu\u00e1rio de SO &#8220;scripts&#8221; OU<\/li>\n<li>Do IP 10.192.12.40 com usu\u00e1rio de SO &#8220;root&#8221;<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">SQL&gt; select t.* from tb_filter_logon t\r\n\r\n    SESSION_USER    HOST       OS_USER        TERMINAL    MODULE    IP_ADDRESS\r\n1   SCOTT                      scripts                              10.192.12.43\r\n2   SCOTT                      root                                 10.192.12.40<\/pre>\n<p>2) O usu\u00e1rio <strong>EXPUSER<\/strong> pode se conectar apenas:<\/p>\n<ul>\n<li>Da m\u00e1quina cujo hostname \u00e9 &#8220;syslogfubddsne001&#8221; e utilizando o &#8220;SQL Developer&#8221; OU<\/li>\n<li>Do IP 10.192.12.40 utilizando JDBC e com o usu\u00e1rio\u00a0de SO\u00a0&#8220;javacode&#8221;<\/li>\n<\/ul>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">SQL&gt; select t.* from tb_filter_logon t\r\n\r\n    SESSION_USER    HOST               OS_USER   TERMINAL  MODULE            IP_ADDRESS  \r\n1   EXPUSER         syslogfubddsne001                      SQL Developer              \r\n2   EXPUSER                            javacode            JDBC Thin Client  10.192.12.40<\/pre>\n<p><strong>OBS:<\/strong> Se n\u00e3o existir qualquer entrada do usu\u00e1rio (<span style=\"color: #800000;\"><strong>SESSION_USER<\/strong><\/span>) na tabela, o usu\u00e1rio n\u00e3o ser\u00e1 bloqueado.<\/p>\n<p>Por fim, lembre-se: se o usu\u00e1rio possuir o GRANT de &#8220;<strong>Administer Database Trigger<\/strong>&#8220;, direta ou indiretamente (como o caso da role <span style=\"color: #800000;\"><strong>DBA<\/strong><\/span>), ele nunca ser\u00e1 bloqueado por triggers de logon!<\/p>\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-1284 jlk' href='javascript:void(0)' data-task='like' data-post_id='1284' 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-1284 lc'>+16<\/span><\/a><\/div><\/div> <div class='status-1284 status align-left'><\/div><\/div><div class='wti-clear'><\/div>","protected":false},"excerpt":{"rendered":"<p>Quando a senha de um usu\u00e1rio expira em uma das bases que administro, alguns usu\u00e1rios reclamam que se trata de um usu\u00e1rio de aplica\u00e7\u00e3o e a senha n\u00e3o pode expirar nunca. Desta forma, se o schema realmente deve ser usado apenas pela aplica\u00e7\u00e3o, eu criei um processo que ir\u00e1 controlar esse acesso baseado nas informa\u00e7\u00f5es &hellip; <\/p>\n<p><a class=\"more-link btn\" href=\"https:\/\/www.dbarj.com.br\/pt-br\/2015\/01\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\/\">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-1284","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>Limitando conex\u00e3o ao Oracle baseado no IP do usu\u00e1rio e outras informa\u00e7\u00f5es - DBA - Rodrigo Jorge - Oracle Tips and Guides<\/title>\n<meta name=\"description\" content=\"Como limitando conex\u00e3o ao Oracle baseado no IP do usu\u00e1rio e outras informa\u00e7\u00f5es\" \/>\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\/2015\/01\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\/\" \/>\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=\"4 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\\\/2015\\\/01\\\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2015\\\/01\\\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\\\/\"},\"author\":{\"name\":\"DBA RJ\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/#\\\/schema\\\/person\\\/28a44ca3a6633fe4156ad1ea209d40a9\"},\"headline\":\"Limitando conex\u00e3o ao Oracle baseado no IP do usu\u00e1rio e outras informa\u00e7\u00f5es\",\"datePublished\":\"2015-01-15T16:30:18+00:00\",\"dateModified\":\"2015-04-01T11:18:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2015\\\/01\\\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\\\/\"},\"wordCount\":418,\"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\\\/2015\\\/01\\\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2015\\\/01\\\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\\\/\",\"url\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2015\\\/01\\\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\\\/\",\"name\":\"Limitando conex\u00e3o ao Oracle baseado no IP do usu\u00e1rio e outras informa\u00e7\u00f5es - DBA - Rodrigo Jorge - Oracle Tips and Guides\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/#website\"},\"datePublished\":\"2015-01-15T16:30:18+00:00\",\"dateModified\":\"2015-04-01T11:18:47+00:00\",\"description\":\"Como limitando conex\u00e3o ao Oracle baseado no IP do usu\u00e1rio e outras informa\u00e7\u00f5es\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2015\\\/01\\\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2015\\\/01\\\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/2015\\\/01\\\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.dbarj.com.br\\\/pt-br\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Limitando conex\u00e3o ao Oracle baseado no IP do usu\u00e1rio e outras informa\u00e7\u00f5es\"}]},{\"@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":"Limitando conex\u00e3o ao Oracle baseado no IP do usu\u00e1rio e outras informa\u00e7\u00f5es - DBA - Rodrigo Jorge - Oracle Tips and Guides","description":"Como limitando conex\u00e3o ao Oracle baseado no IP do usu\u00e1rio e outras informa\u00e7\u00f5es","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\/2015\/01\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\/","twitter_misc":{"Escrito por":"DBA RJ","Est. tempo de leitura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbarj.com.br\/pt-br\/2015\/01\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\/#article","isPartOf":{"@id":"https:\/\/www.dbarj.com.br\/pt-br\/2015\/01\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\/"},"author":{"name":"DBA RJ","@id":"https:\/\/www.dbarj.com.br\/pt-br\/#\/schema\/person\/28a44ca3a6633fe4156ad1ea209d40a9"},"headline":"Limitando conex\u00e3o ao Oracle baseado no IP do usu\u00e1rio e outras informa\u00e7\u00f5es","datePublished":"2015-01-15T16:30:18+00:00","dateModified":"2015-04-01T11:18:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbarj.com.br\/pt-br\/2015\/01\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\/"},"wordCount":418,"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\/2015\/01\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbarj.com.br\/pt-br\/2015\/01\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\/","url":"https:\/\/www.dbarj.com.br\/pt-br\/2015\/01\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\/","name":"Limitando conex\u00e3o ao Oracle baseado no IP do usu\u00e1rio e outras informa\u00e7\u00f5es - DBA - Rodrigo Jorge - Oracle Tips and Guides","isPartOf":{"@id":"https:\/\/www.dbarj.com.br\/pt-br\/#website"},"datePublished":"2015-01-15T16:30:18+00:00","dateModified":"2015-04-01T11:18:47+00:00","description":"Como limitando conex\u00e3o ao Oracle baseado no IP do usu\u00e1rio e outras informa\u00e7\u00f5es","breadcrumb":{"@id":"https:\/\/www.dbarj.com.br\/pt-br\/2015\/01\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbarj.com.br\/pt-br\/2015\/01\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbarj.com.br\/pt-br\/2015\/01\/limitando-conexao-ao-oracle-baseado-no-ip-usuario-e-outras-informacoes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.dbarj.com.br\/pt-br\/"},{"@type":"ListItem","position":2,"name":"Limitando conex\u00e3o ao Oracle baseado no IP do usu\u00e1rio e outras informa\u00e7\u00f5es"}]},{"@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\/1284","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=1284"}],"version-history":[{"count":0,"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/posts\/1284\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/media?parent=1284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/categories?post=1284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbarj.com.br\/pt-br\/wp-json\/wp\/v2\/tags?post=1284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}