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.
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:
[oracle@oracle ~]$ sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 – Production on Sat Apr 30 22:01:08 2011Copyright (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:
[oracle@oracle ~]$ 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:
[oracle@oracle ~]$ 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 optionsSQL> 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
FONTE http://aprenderoracle.com/2011/04/30/criando-uma-tablespace-um-usuario-e-uma-tabela/
FONTE http://aprenderoracle.com/2011/04/30/criando-uma-tablespace-um-usuario-e-uma-tabela/
Nenhum comentário:
Postar um comentário