Olá, tudo bem !
Recentemente eu precisei fazer a instalação do Oracle XE (express edition) para poder realizar um Troubleshooting em alguns objetos do Oracle, é usual, boa pratica e regras de segurança as empresas não fornecerem acessos aos DB’s de forma a ter acesso FULL, por esse motivo eu fiz a instalação em uma das minhas VM’s, porem ao instalar eu descobri que eu não tenho tanta familiaridade com Oracle quanto SQL SERVER, sendo que eu sempre usufruo de um banco de dados já criado, foi ai que eu fui atrás e aprendi algumas coisas que irei compartilhar com vocês.
Bom, após a instalação do Oracle XE eu descobri que a versão express edition tem algumas limitações, normal de versões gratuitas, mas eu não tinha conhecimento que eu não poderia criar novos bancos de dados, na instalação do Oracle ele já cria um banco chamado XE (banco e instância), e você tem apenas esse banco para poder se divertir, mas eu já conheço um pouco de Oracle e sei que é possível criar SCHEMA usando tablespace, usuários e gerar uma organização mesmo com apenas um banco de dados padrão(XE), as versões pagas Enterprise, Standard e Personal você pode criar quantos bancos e instâncias desejar.
No caso do Express Edition, o limite é 4GB e nas outras versões você pode colocar UNLIMITED para os datafiles, mas são limitados em 128GB para BlockSize de 32k(SMALLFILE) e 128TB no caso de BIGFILE.
Minha missão era, criar um SCHEMA, começando pelo tablespace, usuário, permissões e tabela, fazer um acesso e verificar se aquele usuário logado na base XE só iria visualizar as tabelas que foram concedidas a permissão.
Obviamente que eu fui até 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ário e assim por diante, então eu compilei todas as informações e fiz uma “receita de bolo”.
Ante de começar você sabe o que é uma Tablespaces?
Um banco de dados é dividido em unidades lógicas de armazenamento, denominadas tablespaces, que podem ser usadas para agrupar estruturas lógicas relacionadas. Cada banco de dados está dividido logicamente em um ou mais tablespaces. Um ou mais arquivos de dados são criados explicitamente para cada tablespace, de modo a armazenar fisicamente os dados de todas as estruturas lógicas de um tablespace.
Enfim, vamos ao que interessa !!!!!!!!!
Vamos imaginar uma situação hipotética para exemplificar, precisamos criar uma área (tablespace) onde uma equipe de desenvolvimento vai poder acessar e criar tabelas e todos os objetos necessários para executar testes de desenvolvimento no dia-a-dia.
Vamos combinar que o nosso tablespace terá o nome de “Desenvolvimento” e iremos criar um único usuário chamado “Dev” onde todos da equipe de desenvolvimento podem usar, você pode criar quantos usuários quiser para um tablespace, ok.
1º Acesso ao Oracle
Você vai precisar acessar o Oracle com o usuário SYS ou SYSTEM, usuário criado automaticamente na instalação do Oracle onde você inseriu a senha, se você tem um outro usuário que tenha permissões suficiente siga com seu usuário, caso contrario você vai precisar do usuário SYS ou SYSTEM.
Faça 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ácil acesso e amigável.
2º Criar o Tablespace
Vamos criar agora o tablespace do ambiente de desenvolvimento, vamos chamar esse tablespace de “Desenvolvimento”.
Execute o bloco de comando abaixo:
CREATE TABLESPACE Desenvolvimento LOGGING DATAFILE 'Desenvolvimento.dbf' SIZE 100m AUTOEXTEND ON NEXT 100m EXTENT MANAGEMENT LOCAL;
Observe que estou criando o tablespace com 100MB e ele vai se expandir automaticamente a cada 100MB até o infinito ou tamanho do seu HD…rs.rs
3º Criar Usuário e dar acesso no Tablespace
Vamos criar o usuário “Dev” e dar acesso ao Tablespace “Desenvolvimento”
Execute o bloco de comando abaixo:
alter session set "_ORACLE_SCRIPT"=true; CREATE USER Dev IDENTIFIED BY Dev1234 DEFAULT TABLESPACE Desenvolvimento QUOTA UNLIMITED ON Desenvolvimento;
4º Aplicar as permissões (GRANT)
Após a criação do usuário “Dev” temos que informar as permissões aplicando o Grant, estou aplicando algumas permissões padrões e suficiente para meu usuário “Dev” poder trabalhar.
Execute o bloco de comando abaixo:
GRANT create session, alter session, create table, create procedure, create view, create materialized view, create trigger, create sequence, create any directory, create type, create synonym TO Dev;
5º Fazer o Acesso com o Usuário Dev
Após a criação do usuário “Dev” e dar os Grant’s vamos fazer criar uma nova conexão.
Não se esqueça que nossa base é a XE, base padrão da versão grátis, criamos um estrutura lógica chamada de Tablespace dentro do banco XE denominada “Desenvolvimento”.
Observe que ao fazer o acesso com o usuário “Dev” ainda não temos objetos criados no Tablespace “Desenvolvimento”
6º Criar tabela
Após fazer a conexão com o usuário “Dev” vamos criar a primeira tabela.
Execute o bloco de comando abaixo:
CREATE TABLE Dev.Tbl_Teste ( nome VARCHAR(100), sobre_nome VARCHAR(100), Telefone CHAR(11), Endereco VARCHAR(30), Idade NUMBER );
Observe que após a criação da tabela agora o usuário “DEV” consegue visualizar os objetos que pertencem ao seu Tablespace.
Conclusão:
Agora nossa equipe de desenvolvimento tem uma área para poder fazer testes, eu poderia ainda ter criados vários usuários e não apenas um usuário genérico “Dev”, mas isso fica ao seu critério, seguindo essa mesma lógica você pode criar Tablespace para seus sistemas trabalharem de forma organizada.
Bom, era isso pessoal !!!
Até a próxima.
Abs,
Fabrizio Gianfratti Manes
Excelente artigo. Simples e direto! com vários detalhes e explicações. TKS
Everton, muito obrigado, espero ter ajudado..
Abs
Fabrizio GIanfratti
Obrigado pelo artigo brother, me socorreu aqui! Abraço.
Olá Alex, o objetivo é ajudar sempre, disponha.
Abs,
Fabrizio Gianfratti
Artigo legal e certamente vai ajudar muita gente. Quero lembrar que no caso do Express Edition, o limite é 4GB e nas outras versões você pode colocar UNLIMITED para os datafiles, mas são limitados em 128GB para BlockSize de 32k(SMALLFILE) e 128TB no caso de BIGFILE.
Antonio, tudo bem ?
Obrigado pela sua contribuição, eu editei o Post e adicionei a sua citação, muito bem lembrado.
Abs,
Fabrizio GIanfratti
Que baita artigo isso aqui, não conheço nada de oracle, mas resolveu meu problema em um instante.
Olá, obrigado, fico feliz que esse artigo tem ajudado muitas pessoas.
Grande Abs
Fabrizio Gianfratti Manes
Olá Fabrizio.
Sua postagem foi pontual para resolver o meu problema e muito bem elaborada.
Não sei se outros tiveram o mesmo problema, mas antes de executar o passo 3 precisei executa o comando abaixo porque estava dando o erro “ORA-65096: invalid common user or role name”
alter session set “_ORACLE_SCRIPT”=true;
Muito obrigado.
Olá Marcos, obrigado pelo comentário, vou deixar registrado caso alguém tenha o mesmo cenário…
Abs
Você tem que alterar seu post porque a galera só vê comentário em último recurso, pois fiquei preso 3 dias no seu script que seria um sucesso. É só colocar isso: alter session set “_ORACLE_SCRIPT”=true; antes de criar o usuário.
Obrigado por compartilhar, alterei o Post e vou deixar seu comentário habilitado para todos…
Valew.
Grato pelo auxílio!
Disponha !!!
Abs
Muito bom!!!
Parabéns!!
Excelente artigo, me ajudou, simples e direto.
Obrigado !
Obrigado por comentar !