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

17 Thoughts on “ORACLE – Criando Tablespace, Usuário e Tabela (SCHEMA)

  1. Excelente artigo. Simples e direto! com vários detalhes e explicações. TKS

  2. Obrigado pelo artigo brother, me socorreu aqui! Abraço.

  3. Antonio Pereira on 09/09/2019 at 16:55 said:

    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.

  4. Que baita artigo isso aqui, não conheço nada de oracle, mas resolveu meu problema em um instante.

  5. Marcos A Borges on 26/03/2021 at 21:34 said:

    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.

  6. Grato pelo auxílio!

  7. Pauliane on 12/01/2022 at 08:02 said:

    Muito bom!!!
    Parabéns!!
    Excelente artigo, me ajudou, simples e direto.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Post Navigation