{"id":7356,"date":"2018-02-08T11:39:25","date_gmt":"2018-02-08T13:39:25","guid":{"rendered":"http:\/\/gianfratti.com\/?p=7356"},"modified":"2023-08-09T14:53:21","modified_gmt":"2023-08-09T17:53:21","slug":"oracle-criando-tablespace-usuario-e-tabela-schema","status":"publish","type":"post","link":"http:\/\/gianfratti.com\/index.php\/oracle-criando-tablespace-usuario-e-tabela-schema\/","title":{"rendered":"ORACLE &#8211; Criando Tablespace, Usu\u00e1rio e Tabela (SCHEMA)"},"content":{"rendered":"<p>Ol\u00e1, tudo bem !<\/p>\n<p>Recentemente eu precisei fazer a instala\u00e7\u00e3o do<strong> Oracle XE (express edition)<\/strong> para poder realizar um Troubleshooting em alguns objetos do Oracle, \u00e9 usual, boa pratica e regras de seguran\u00e7a as empresas n\u00e3o fornecerem acessos aos DB&#8217;s de forma a ter acesso FULL, por esse motivo eu fiz a instala\u00e7\u00e3o em uma das minhas VM&#8217;s, porem ao instalar eu descobri que eu n\u00e3o tenho tanta familiaridade com Oracle quanto SQL SERVER, sendo que eu sempre usufruo de um banco de dados j\u00e1 criado, foi ai que eu fui atr\u00e1s e aprendi algumas coisas que irei compartilhar com voc\u00eas.<!--more--><\/p>\n<p>Bom, ap\u00f3s a instala\u00e7\u00e3o do Oracle XE eu descobri que a vers\u00e3o express edition tem algumas limita\u00e7\u00f5es, normal de vers\u00f5es gratuitas, mas eu n\u00e3o tinha conhecimento que eu n\u00e3o poderia criar novos bancos de dados, na instala\u00e7\u00e3o do Oracle ele j\u00e1 cria um banco chamado XE (banco e inst\u00e2ncia), e voc\u00ea tem apenas esse banco para poder se divertir, mas eu j\u00e1 conhe\u00e7o um pouco de Oracle e sei que \u00e9 poss\u00edvel criar\u00a0SCHEMA usando tablespace, usu\u00e1rios e gerar uma organiza\u00e7\u00e3o mesmo com apenas um banco de dados padr\u00e3o(XE), as vers\u00f5es pagas Enterprise, Standard e Personal voc\u00ea pode criar quantos bancos e inst\u00e2ncias desejar.<\/p>\n<blockquote><p>No caso do Express Edition, o limite \u00e9 4GB e nas outras vers\u00f5es voc\u00ea pode colocar UNLIMITED para os datafiles, mas s\u00e3o limitados em 128GB para BlockSize de 32k(SMALLFILE) e 128TB no caso de BIGFILE.<\/p><\/blockquote>\n<p>Minha miss\u00e3o era, <strong>criar um SCHEMA, come\u00e7ando pelo tablespace, usu\u00e1rio, permiss\u00f5es e tabela<\/strong>, fazer um acesso e verificar se aquele usu\u00e1rio logado na base XE s\u00f3 iria visualizar as tabelas que foram concedidas a permiss\u00e3o.<\/p>\n<p>Obviamente que eu fui at\u00e9 o nosso amigo Google e fiz algumas pesquisas e encontrei o que eu precisava, mas de formas desconectadas, um ensinava a criar um tablespace, outro um usu\u00e1rio e assim por diante, ent\u00e3o eu compilei todas as informa\u00e7\u00f5es e fiz uma &#8220;receita de bolo&#8221;.<\/p>\n<blockquote><p>Ante de come\u00e7ar voc\u00ea sabe o que \u00e9 uma Tablespaces?<\/p>\n<p>Um banco de dados \u00e9 dividido em unidades l\u00f3gicas de armazenamento, denominadas <strong>tablespaces<\/strong>, que podem ser usadas para agrupar estruturas l\u00f3gicas relacionadas. Cada banco de dados est\u00e1 dividido logicamente em um ou mais <strong>tablespaces<\/strong>. Um ou mais arquivos de dados s\u00e3o criados explicitamente para cada <strong>tablespace<\/strong>, de modo a armazenar fisicamente os dados de todas as estruturas l\u00f3gicas de um <strong>tablespace<\/strong>.<\/p><\/blockquote>\n<p>Enfim, vamos ao que interessa !!!!!!!!!<\/p>\n<p>Vamos imaginar uma situa\u00e7\u00e3o hipot\u00e9tica para exemplificar, precisamos criar uma \u00e1rea (tablespace) onde uma equipe de desenvolvimento vai poder acessar e criar tabelas e todos os objetos necess\u00e1rios para executar testes de desenvolvimento no dia-a-dia.<\/p>\n<blockquote><p>Vamos combinar que o nosso tablespace ter\u00e1 o nome de &#8220;Desenvolvimento&#8221; e iremos criar um \u00fanico usu\u00e1rio chamado &#8220;Dev&#8221; onde todos\u00a0 da equipe de desenvolvimento podem usar, voc\u00ea pode criar quantos usu\u00e1rios quiser para um\u00a0tablespace, ok.<\/p><\/blockquote>\n<h1>1\u00ba Acesso ao Oracle<\/h1>\n<p>Voc\u00ea vai precisar acessar o Oracle com o usu\u00e1rio SYS ou SYSTEM, usu\u00e1rio criado automaticamente na instala\u00e7\u00e3o do Oracle onde voc\u00ea inseriu a senha, se voc\u00ea tem um outro usu\u00e1rio que tenha permiss\u00f5es suficiente siga com seu usu\u00e1rio, caso contrario voc\u00ea vai precisar do usu\u00e1rio SYS ou SYSTEM.<br \/>\nFa\u00e7a o acesso no Oracle usando a sua IDE favorita, Sql plus, Sql Developer, Toad, etc, irei usar o Sql Developer por ser popular de f\u00e1cil acesso e amig\u00e1vel.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7359\" src=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_01.png\" alt=\"\" width=\"779\" height=\"420\" srcset=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_01.png 779w, http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_01-300x162.png 300w, http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_01-768x414.png 768w\" sizes=\"auto, (max-width: 779px) 100vw, 779px\" \/><\/p>\n<h1>2\u00ba Criar o Tablespace<\/h1>\n<p>Vamos criar agora o tablespace do ambiente de desenvolvimento, vamos chamar esse tablespace de &#8220;Desenvolvimento&#8221;.<\/p>\n<p>Execute o bloco de comando abaixo:<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\nCREATE TABLESPACE Desenvolvimento\r\nLOGGING DATAFILE 'Desenvolvimento.dbf'\r\nSIZE 100m AUTOEXTEND ON NEXT 100m EXTENT MANAGEMENT LOCAL;\r\n<\/pre>\n<p>Observe que estou criando o tablespace com 100MB <strong>e ele vai se expandir automaticamente a cada<\/strong> 100MB at\u00e9 o infinito ou tamanho do seu HD&#8230;rs.rs<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7360\" src=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_02.png\" alt=\"\" width=\"738\" height=\"500\" srcset=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_02.png 738w, http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_02-300x203.png 300w\" sizes=\"auto, (max-width: 738px) 100vw, 738px\" \/><\/p>\n<h1>3\u00ba Criar Usu\u00e1rio e dar acesso no Tablespace<\/h1>\n<p>Vamos criar o usu\u00e1rio &#8220;Dev&#8221; e dar acesso ao Tablespace &#8220;Desenvolvimento&#8221;<\/p>\n<p>Execute o bloco de comando abaixo:<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\nalter session set &quot;_ORACLE_SCRIPT&quot;=true;\r\nCREATE USER Dev\r\nIDENTIFIED BY Dev1234\r\nDEFAULT TABLESPACE Desenvolvimento\r\nQUOTA UNLIMITED ON Desenvolvimento;\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7361\" src=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_03.png\" alt=\"\" width=\"1093\" height=\"364\" srcset=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_03.png 1093w, http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_03-300x100.png 300w, http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_03-768x256.png 768w, http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_03-1024x341.png 1024w\" sizes=\"auto, (max-width: 1093px) 100vw, 1093px\" \/><\/p>\n<h1>4\u00ba Aplicar as permiss\u00f5es (GRANT)<\/h1>\n<p>Ap\u00f3s a cria\u00e7\u00e3o do usu\u00e1rio &#8220;Dev&#8221; temos que informar as permiss\u00f5es aplicando o Grant, estou aplicando algumas permiss\u00f5es padr\u00f5es e suficiente para meu usu\u00e1rio &#8220;Dev&#8221; poder trabalhar.<\/p>\n<p>Execute o bloco de comando abaixo:<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\nGRANT\r\ncreate session,\r\nalter session,\r\ncreate table,\r\ncreate procedure,\r\ncreate view,\r\ncreate materialized view,\r\ncreate trigger,\r\ncreate sequence,\r\ncreate any directory,\r\ncreate type,\r\ncreate synonym\r\nTO\r\nDev;\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7362\" src=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_04.png\" alt=\"\" width=\"608\" height=\"498\" srcset=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_04.png 608w, http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_04-300x246.png 300w\" sizes=\"auto, (max-width: 608px) 100vw, 608px\" \/><\/p>\n<h1>5\u00ba Fazer o Acesso com o Usu\u00e1rio Dev<\/h1>\n<p>Ap\u00f3s a cria\u00e7\u00e3o do usu\u00e1rio &#8220;Dev&#8221; e dar os Grant&#8217;s vamos fazer criar uma nova conex\u00e3o.<\/p>\n<p>N\u00e3o se esque\u00e7a que nossa base \u00e9 a XE, base padr\u00e3o da vers\u00e3o gr\u00e1tis, criamos um estrutura l\u00f3gica chamada de Tablespace dentro do banco XE denominada &#8220;Desenvolvimento&#8221;.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7363\" src=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_05.png\" alt=\"\" width=\"779\" height=\"418\" srcset=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_05.png 779w, http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_05-300x161.png 300w, http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_05-768x412.png 768w\" sizes=\"auto, (max-width: 779px) 100vw, 779px\" \/><\/p>\n<p>Observe que ao fazer o acesso com o usu\u00e1rio &#8220;Dev&#8221; ainda n\u00e3o temos objetos criados no Tablespace &#8220;Desenvolvimento&#8221;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-7364 size-full\" src=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_06.png\" alt=\"\" width=\"795\" height=\"327\" srcset=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_06.png 795w, http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_06-300x123.png 300w, http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_06-768x316.png 768w\" sizes=\"auto, (max-width: 795px) 100vw, 795px\" \/><\/p>\n<h1>6\u00ba Criar tabela<\/h1>\n<p>Ap\u00f3s fazer a conex\u00e3o com o usu\u00e1rio &#8220;Dev&#8221; vamos criar a primeira tabela.<\/p>\n<p>Execute o bloco de comando abaixo:<\/p>\n<pre class=\"brush: php; title: ; notranslate\" title=\"\">\r\nCREATE TABLE Dev.Tbl_Teste (\r\nnome VARCHAR(100),\r\nsobre_nome VARCHAR(100),\r\nTelefone CHAR(11),\r\nEndereco VARCHAR(30),\r\nIdade NUMBER\r\n);\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7365\" src=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_07.png\" alt=\"\" width=\"796\" height=\"412\" srcset=\"http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_07.png 796w, http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_07-300x155.png 300w, http:\/\/gianfratti.com\/wp-content\/uploads\/2018\/02\/Oracle_Tablespace_07-768x398.png 768w\" sizes=\"auto, (max-width: 796px) 100vw, 796px\" \/><\/p>\n<p>Observe que ap\u00f3s a cria\u00e7\u00e3o da tabela agora o usu\u00e1rio &#8220;DEV&#8221; consegue visualizar os objetos que pertencem ao seu Tablespace.<\/p>\n<p>Conclus\u00e3o:<\/p>\n<p>Agora nossa equipe de desenvolvimento tem uma \u00e1rea para poder fazer testes, eu poderia ainda ter criados v\u00e1rios usu\u00e1rios e n\u00e3o apenas um usu\u00e1rio gen\u00e9rico &#8220;Dev&#8221;, mas isso fica ao seu crit\u00e9rio, seguindo essa mesma l\u00f3gica voc\u00ea pode criar Tablespace para seus sistemas trabalharem de forma organizada.<\/p>\n<p>Bom, era isso pessoal !!!<\/p>\n<p>At\u00e9 a pr\u00f3xima.<\/p>\n<p>Abs,<br \/>\nFabrizio Gianfratti Manes<\/p>\n<div id=\"simple-translate\">\n<div>\n<div class=\"simple-translate-button \" style=\"background-image: url('moz-extension:\/\/682faaf8-707c-4ae9-b672-158475477516\/icons\/512.png'); height: 22px; width: 22px; top: 10px; left: 10px;\"><\/div>\n<div class=\"simple-translate-panel \" style=\"width: 300px; height: 200px; top: 0px; left: 0px; font-size: 13px; background-color: #ffffff;\">\n<div class=\"simple-translate-result-wrapper\" style=\"overflow: hidden;\">\n<p class=\"simple-translate-candidate\" style=\"color: #737373;\">\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Ol\u00e1, tudo bem ! Recentemente eu precisei fazer a instala\u00e7\u00e3o do Oracle XE (express edition) para poder realizar um Troubleshooting em alguns objetos do Oracle, \u00e9 usual, boa pratica e regras de seguran\u00e7a as empresas n\u00e3o fornecerem acessos aos DB&#8217;s de forma a ter acesso FULL, por esse motivo eu fiz a instala\u00e7\u00e3o em uma <span class=\"ellipsis\">&hellip;<\/span> <span class=\"more-link-wrap\"><a href=\"http:\/\/gianfratti.com\/index.php\/oracle-criando-tablespace-usuario-e-tabela-schema\/\" class=\"more-link\"><span>Read More &rarr;<\/span><\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[17,82],"tags":[235,233,234],"class_list":["post-7356","post","type-post","status-publish","format-standard","hentry","category-banco-de-dados","category-oracle","tag-tabela","tag-tablespace","tag-usuario"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/posts\/7356","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/comments?post=7356"}],"version-history":[{"count":14,"href":"http:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/posts\/7356\/revisions"}],"predecessor-version":[{"id":14802,"href":"http:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/posts\/7356\/revisions\/14802"}],"wp:attachment":[{"href":"http:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/media?parent=7356"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/categories?post=7356"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/gianfratti.com\/index.php\/wp-json\/wp\/v2\/tags?post=7356"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}