Página Inicial > Estudo, Oracle, Tutorial > Criando uma tablespace, usuário e uma tabela

Criando uma tablespace, usuário e uma tabela

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, para criarmos uma tablespace, devemos logar com o usuário sys:

[[email protected] ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 – Production on Sat Apr 30 22:01:08 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
With the Partitioning, OLAP and Data Mining options

Agora podemos rodar o comando create tablespace, para criar a tablespace:

CREATE TABLESPACE nome_tablespace LOGGING DATAFILE ‘/u01/app/oracle/oradata/TSH1/nome_tablespace.dbf’ SIZE 100m AUTOEXTEND ON NEXT 100m EXTENT MANAGEMENT LOCAL;

Ótimo, criamos uma tablespace e agora criamos um usuário no Oracle e vincular este usuário ao tablespace chamada nome_tablespace.

CREATE USER usuario IDENTIFIED BY senha DEFAULT TABLESPACE nome_tablespace QUOTA UNLIMITED ON  nome_tablespace;

Se tentarmos logar com este usuário, vai aparecer o seguinte erro:

[[email protected] ~]$ sqlplus usuario/senha
SQL*Plus: Release 10.2.0.1.0 – Production on Sat Apr 30 22:15:06 2011
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
ERROR:
ORA-01045: user USUARIO lacks CREATE SESSION privilege; logon denied

Humm… esta faltando o grant de session, para que possamos logar com o usuario, vamos dar um grant para o usuário logar e abrir uma sessão:

GRANT CREATE SESSION TO usuario;

Consegui logar e agora vamos tentar criar uma tabela:

[[email protected] ~]$ sqlplus usuario/senha;
SQL*Plus: Release 10.2.0.1.0 – Production on Sat Apr 30 22:24:16 2011
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
With the Partitioning, OLAP and Data Mining options

SQL> CREATE TABLE TABELA (
  2  nome VARCHAR(100),
  3  sobre_nome VARCHAR(100),
  4  Telefone CHAR(11),
  5  Endereco VARCHAR(30),
  6  Idade    NUMBER
  7  );
CREATE TABLE TABELA (
*
ERROR at line 1:
ORA-01031: insufficient privileges

Caramba ainda falta mais grant !!! este oracle é chatão neh ??? NÃO e NÃO, ele é SEGURO!!!! Vamos ao grant para a tabela, após tentamos criar novamente a tabela.

GRANT CREATE TABLE TO usuario;

CREATE TABLE TABELA (
nome VARCHAR(100),
sobre_nome VARCHAR(100),
Telefone CHAR(11),
Endereco VARCHAR(30),
Idade    NUMBER
);

table TABELA created.

Pronto, criamos a tabela, mais não vamos conseguir criar sequence, procedure, views e etc, para isso podemos colocar na mesma linha o grant, façamos desta maneira:

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 william;

Acho que é isso, espero que gostem.

Um abraço

  1. Sérgio Tavares
    22, setembro, 2011 em 20:35 | #1

    boa noite

    conseguir depois 15 dias baixar um vm oracle no
    site da oracle, depois instalar a na Virtual Box, não conseguido acessar o banco via SqlDeveloper, com o seu site conectei no banco e crie um usuario, mais acho que pulei a parte do tablespace, estou tentando criar agora, está com erro, devo inicio os procedimentos??

    grato.

    Sérgio Tavares

    • 22, setembro, 2011 em 22:36 | #2

      Sergio boa noite!
      Que bom que conseguiu, o erro que vc esta tendo qual é? Acredito que o erro seja no listerner.

      Um abraço

  2. Fabricio
    14, março, 2012 em 11:25 | #3

    Olá amigo, obrigado pelo post. Comunico que há uma virgula extra, após create synonym. É necessário removê-la para o último GRANT funcionar 😀

  3. 15, março, 2012 em 08:13 | #4

    @Fabricio
    Corrigido !!! obrigado

  4. Eduardo Vieira
    18, julho, 2012 em 09:49 | #5

    Cara, esse tutorial foi o mais objetivo em português que encontrei, existe muito fakes postado por aí. Forte abraço!

  5. Ricardo
    14, agosto, 2012 em 09:17 | #6

    Parabéns, direto e objeto dificil achar tutorial bom para iniciante valeu!

  6. Leonardo
    28, outubro, 2012 em 15:25 | #7

    Muito obrigado, tutorial muito simples e pra mim que sou iniciante ficou massa !!!!

    Parabéns.

  7. rogerio
    16, novembro, 2012 em 14:41 | #8

    Muiito bom, ajudou muito agradecido!

  8. Denis
    3, abril, 2013 em 20:54 | #9

    Muito legal. Pena que o cara é Palmeirense..

  9. Felipe Bergmann
    6, junho, 2013 em 10:36 | #10

    Olá, muito bom para quem inicia em oracle como eu (por conta da faculdade) e meu professor inútil não consegue ensinar nem select * from table; quem diria criar usuários.

    Obrigado!

  10. Hugo Alvarez
    16, julho, 2014 em 09:07 | #11

    Falae William de buenas?

    Tenho usado o site aqui como uma referência para criar um servidor Oracle 12 e migrar um banco para colocar em produção, manjo de toda infra de mssql e é a primeira vez que trabalho com Oracle.

    Fiquei com uma dúvida depois do artigo explicativo de CBDs e PDBs que deve ser simples pra vc, vou tentar explicar resumidamente.

    Atualmente o webserver utiliza um usuario por exemplo hugo com uma senha hugopass, que é o usuário que funciona hoje no Oracle atual.

    Após aprender sobre local users e common users, criei um common user c##hugo, conectei no antigo, exportei, conectei no novo, importei, to com todos os dados acessiveis com o usuario c##hugo, tudo ok. Então mudei para o meu PDB via sqlplus, criei um usuário hugo somente para o meu PDB que está com meus dados, mas não consigo me conectar com meu usuário Hugo, dei um GRANT create session para o usuário neste PDB, tudo funciona, mas eu queria saber como usar o local user para conectar no PDB específico!

    Vlw a força e o bom trabalho no blog.

  11. Emerson Leandro Poli
    18, setembro, 2014 em 17:45 | #12

    Parabéns pelo conteúdo. Totalmente didático e funcional.

  12. Caio de Oliveira Freire
    13, abril, 2016 em 17:37 | #13

    Boa tarde!

    Já trabalhei com Oracle a algum tempo, hoje na empresa temos que montar um QA com o Oracle 12C, consegui instalar, acessei com a conta SYS, porém, ao tentar criar um usuário ele da o erro ORA-01031: insufficient privileges, já procurei alguns posts e não encontrei nada que pudesse resolver minha questão, alguém saberia me informar por que não consigo criar este usuário, sendo que o SYS esta como SYSDBA?

  1. Nenhum trackback ainda.