Fragmentação de tablespaces
Passo 1 - connectar como dba
a connect system/uninove
b alter user sys identified by oracle
c connect sys as sysdba senha:oracle
passo2 - criando uma tablespa
a select file_name from dba_data_files;
b create tablespace tbs_teste
CREATE TABLESPACE tbs_teste
DATAFILE
'C:\APP\ALUNO\ORADATA\ORCL\arq_texte_01.dbf' SIZE 50 M reuse
extent management local
segment space management auto;
passo 3 criando um usuario
create user teste identified by teste
default tablespace tbs_teste
quota unlimited on tbs_teste;
passo 4 grant connect, resource to teste
passo 5 connectar com usuario teste
a criar uma tabela criente na tablespace criada
b criar uma sequence
c fazer uma carga de 100.000
d select count (*) from cliente
create table cliente(
id_cliente number(6),
nome_cliente varchar2(20),
cpf_cliente varchar2(20))
tablespace tbs_teste;
create sequence
sequencia_cliente
start with 40;
DECLARE
contador INTEGER;
CPF_CLI NUMBER(11):=35419972816;
BEGIN
contador := 1;
while contador <= 100000 loop
insert into cliente values (sequencia_cliente.nextval, 'marcio_marcelo', CPF_CLI);
contador := contador + 1;
CPF_CLI := CPF_CLI +1;
end loop;
commit;
end;
/
select count (*) from cliente;
passo 6 analisar a tabela
analyze table cliente compute statistics;
passo 7 consultar blocos livres e blocos utilizados
select a.blocks, b.blocks hwm, b.empty_blocks
from
user_segments a, user_tables b
where a. segment_name=b.table_name and
b.table_name='CLIENTE';
passo 8 deletando as linhas da tabela cliente
delete from cliente;
commit;
passo 9 analisar a tabela
analyze table cliente compute statistics;
passo 10 consulta dos blocos
select a.blocks, b.blocks hwm, b.empty_blocks
from
user_segments a, user_tables b
where a. segment_name=b.table_name and
b.table_name='CLIENTE';
passo 11 connectar administrador e efetuar
consulta dos extents utilizados
pelo segmento cliente
select extent_id,blocks,block_id from
dba_extents
where upper (segment_name)='CLIENTE' and upper(owner)='TESTE';
passo 12 criar e popular titulo
a connect teste/teste
b create table titulo (id number);
c insert into titulo select level from dual connect by level <=20000;
passo 13 consulta blocos livres e blocos usados
select a.blocks, b.blocks hwm, b.empty_blocks
from
user_segments a, user_tables b
where a. segment_name=b.table_name and
b.table_name='TITULO';
passo 14 consulta dos extents
select extent_id,blocks,block_id from
dba_extents
where upper (segment_name)='TITULO' and upper(owner)='TESTE';
passo 15 eliminar a fragmentação
connect teste/teste
a - alter table cliente move;
b - alter table cliente enable row movement;
c - alter table cliente shrink space;
passo 16 (no system) consulta dos extents do segmento cliente
select extent_id,blocks,block_id from
dba_extents
where upper (segment_name)='CLIENTE' and upper(owner)='TESTE';
terça-feira, 24 de novembro de 2015
quinta-feira, 5 de novembro de 2015
Consultar privilégios de usuário no Oracle
Estas são consultas úteis para identificar quais são os privilégios de um determinado usuário em base Oracle:
1) Privilégios de sistema: select privilege from dba_sys_privs where grantee = '<usuario>';
2) Privilégios em tabelas: select privilege from dba_tab_privs where grantee = '<usuario>';
3) Roles concedidas ao usuário: select granted_role from dba_role_privs where grantee = '<usuario>';
Para identificar quais são as ROLES e privilégios do usuário que você está conectado, existem essas duas consultas, que são mais simples:
1) Roles do meu usuário: select * from session_roles;
2) Privilégios do meu usuário: select * from session_privs;
1) Privilégios de sistema: select privilege from dba_sys_privs where grantee = '<usuario>';
2) Privilégios em tabelas: select privilege from dba_tab_privs where grantee = '<usuario>';
3) Roles concedidas ao usuário: select granted_role from dba_role_privs where grantee = '<usuario>';
Para identificar quais são as ROLES e privilégios do usuário que você está conectado, existem essas duas consultas, que são mais simples:
1) Roles do meu usuário: select * from session_roles;
2) Privilégios do meu usuário: select * from session_privs;
quinta-feira, 1 de outubro de 2015
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.
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/
exercicio resolvido
-script sql que construa as demandas solicitadas:
-criação de um usuario owner (schema / esquema) que será proprietário dos objetos dos objetos (tabelas,etc) da atividade.(videolar
-criar 1 usuario que terá um perfil de digitador c/ o seguinte nome ''dig01'' senha " clobo"
-criar 1 usuario que tera um perfil de gerente
c/ o seguinte nome "ger01" senha "curitiba"
-o perfil digitador pode executar select, insert , update, delete via role nas tabelas de videolar.
-o perfil gerente pode somente select
resposta
create user videolar identified by lar;
create table videolar.clientes(
cpf number (10)primary key,
Nom_cliente varchar2(30) not null,
End_cliente varchar2(30) not null,
Cidade varchar2(30) not null,
Estado varchar2(30),
Bairro varchar2(30),
Telefone number (15)
);
create table videolar.genero(
cod_genero number (10)primary key,
nom_genero varchar2(30) not null
);
create table videolar.itens_locados(
cod_locacao number (5),
cod_filme number (10),
valor_unitario number (10,2) not null
);
alter table itens_locados add constraint item_PK primary key (cod_locacao,cod_filme);
alter table itens_locados add constraint locacao1_fk foreign key (cod_locacao) references locacao (cod_locacao);
alter table itens_locados add constraint fil_fk foreign key (cod_filme) references filmes (cod_filme);
create table videolar.genero(
cod_genero number (10)primary key,
nom_genero varchar2(30) not null
);
create table videolar.locacao(
cod_locacao number (5)primary key,
cpf number (10),
data_locacao date not null,
data_devolucao date not null,
valor_total number (10,2)
);
alter table locacao add constraint locacao_fk foreign key (cpf) references clientes (cpf);
create table videolar.categoria(
cod_categoria number (5) primary key,
tipo_categoria varchar2(30),
valor_categoria number (10,2) null
);
alter table categoria add constraint ck_categoria check(tipo_categoria in ('OURO','PRATA','BRONZE'));
create table videolar.filmes(
cod_filme number (10)primary key,
cod_categoria number (5),
cod_genero number (5),
tit_filme varchar2(30),
ano_lancamento number (5),
tipo_midia varchar2(3) not null
);
alter table filmes add constraint cat_fk foreign key (cod_categoria) references categoria (cod_categoria);
alter table filmes add constraint gen_fk foreign key (cod_genero)references genero (cod_genero);
alter table filmes add constraint ck_midia check(tipo_midia in ('DVD','VHS'));
create table videolar.itens_locados(
cod_locacao number (5),
cod_filme number (10),
valor_unitario number (10,2) not null
);
alter table itens_locados add constraint item_PK primary key (cod_locacao,cod_filme);
alter table itens_locados add constraint locacao1_fk foreign key (cod_locacao) references locacao (cod_locacao);
alter table itens_locados add constraint fil_fk foreign key (cod_filme) references filmes (cod_filme);
insert into videolar.clientes values(10,'ANTONIO SERAFIN','RUA UVAIAS , 137','SAO PAULO','SP', 'SAUDE', 34528473);
insert into videolar.clientes values(20,'MARIA APARECIDA','RUA ANTONIO PRADO, 245','CAMPINAS','SP', 'SAO JOAQUIM', 87362390);
insert into videolar.clientes values(30,'JOSE AMADEU','RUA ALMIRANTE BARROSO, 512','SAO PAULO','SP', 'VILA FORMOSA', 98371235);
insert into videolar.clientes values(40,'CLAUDIO DA SILVA','RUA DA GLORIA, 9826','SAO PAULO','SP', 'VILA MARIANA', 54543972);
insert into videolar.filmes values(1,3,6,'LAGOA AZUL',1980,'VHS');
insert into videolar.filmes values(2,1,2,'HOME-ARANHA 3',2007,'DVD');
insert into videolar.filmes values(3,2,3,'PEQUENOS ESPIOES',2005,'DVD');
insert into videolar.filmes values(4,2,3,'SHREK',2005,'DVD');
insert into videolar.filmes values(5,3,1,'TITANIC',2002,'VHS');
insert into videolar.filmes values(6,3,6,'VIDAS PASSADAS',1997,'VHS');
insert into videolar.genero values (1,'DRAMA');
insert into videolar.genero values (2,'AVENTURA');
insert into videolar.genero values (3,'INFANTIL');
insert into videolar.genero value (5,'COMEDIA');
COMMIT;
create role digitador;
create role gerente;
grant select,insert,update,delete on videolar.clientes to digitador;
grant select,insert,update,delete on videolar.genero to digitador;
grant select,insert,update,delete on videolar.locacao to digitador;
grant select,insert,update,delete on videolar.categoria to digitador;
grant select,insert,update,delete on videolar.filmes to digitador;
grant select,insert,update,delete on videolar.itens_locados to digitador;
grant digitador to dig01;
grant select on videolar.clientes to gerente;
grant select on videolar.genero to gerente;
grant select on videolar.categoria to gerente;
grant select on videolar.filmes to gerente;
grant select on videolar.itens_locados to gerente;
grant select on videolar.locacao to gerente;
grant connect to ger01;
grant connect to dig01;
-criação de um usuario owner (schema / esquema) que será proprietário dos objetos dos objetos (tabelas,etc) da atividade.(videolar
-criar 1 usuario que terá um perfil de digitador c/ o seguinte nome ''dig01'' senha " clobo"
-criar 1 usuario que tera um perfil de gerente
c/ o seguinte nome "ger01" senha "curitiba"
-o perfil digitador pode executar select, insert , update, delete via role nas tabelas de videolar.
-o perfil gerente pode somente select
resposta
create user videolar identified by lar;
create table videolar.clientes(
cpf number (10)primary key,
Nom_cliente varchar2(30) not null,
End_cliente varchar2(30) not null,
Cidade varchar2(30) not null,
Estado varchar2(30),
Bairro varchar2(30),
Telefone number (15)
);
create table videolar.genero(
cod_genero number (10)primary key,
nom_genero varchar2(30) not null
);
create table videolar.itens_locados(
cod_locacao number (5),
cod_filme number (10),
valor_unitario number (10,2) not null
);
alter table itens_locados add constraint item_PK primary key (cod_locacao,cod_filme);
alter table itens_locados add constraint locacao1_fk foreign key (cod_locacao) references locacao (cod_locacao);
alter table itens_locados add constraint fil_fk foreign key (cod_filme) references filmes (cod_filme);
create table videolar.genero(
cod_genero number (10)primary key,
nom_genero varchar2(30) not null
);
create table videolar.locacao(
cod_locacao number (5)primary key,
cpf number (10),
data_locacao date not null,
data_devolucao date not null,
valor_total number (10,2)
);
alter table locacao add constraint locacao_fk foreign key (cpf) references clientes (cpf);
create table videolar.categoria(
cod_categoria number (5) primary key,
tipo_categoria varchar2(30),
valor_categoria number (10,2) null
);
alter table categoria add constraint ck_categoria check(tipo_categoria in ('OURO','PRATA','BRONZE'));
create table videolar.filmes(
cod_filme number (10)primary key,
cod_categoria number (5),
cod_genero number (5),
tit_filme varchar2(30),
ano_lancamento number (5),
tipo_midia varchar2(3) not null
);
alter table filmes add constraint cat_fk foreign key (cod_categoria) references categoria (cod_categoria);
alter table filmes add constraint gen_fk foreign key (cod_genero)references genero (cod_genero);
alter table filmes add constraint ck_midia check(tipo_midia in ('DVD','VHS'));
create table videolar.itens_locados(
cod_locacao number (5),
cod_filme number (10),
valor_unitario number (10,2) not null
);
alter table itens_locados add constraint item_PK primary key (cod_locacao,cod_filme);
alter table itens_locados add constraint locacao1_fk foreign key (cod_locacao) references locacao (cod_locacao);
alter table itens_locados add constraint fil_fk foreign key (cod_filme) references filmes (cod_filme);
insert into videolar.clientes values(10,'ANTONIO SERAFIN','RUA UVAIAS , 137','SAO PAULO','SP', 'SAUDE', 34528473);
insert into videolar.clientes values(20,'MARIA APARECIDA','RUA ANTONIO PRADO, 245','CAMPINAS','SP', 'SAO JOAQUIM', 87362390);
insert into videolar.clientes values(30,'JOSE AMADEU','RUA ALMIRANTE BARROSO, 512','SAO PAULO','SP', 'VILA FORMOSA', 98371235);
insert into videolar.clientes values(40,'CLAUDIO DA SILVA','RUA DA GLORIA, 9826','SAO PAULO','SP', 'VILA MARIANA', 54543972);
insert into videolar.filmes values(1,3,6,'LAGOA AZUL',1980,'VHS');
insert into videolar.filmes values(2,1,2,'HOME-ARANHA 3',2007,'DVD');
insert into videolar.filmes values(3,2,3,'PEQUENOS ESPIOES',2005,'DVD');
insert into videolar.filmes values(4,2,3,'SHREK',2005,'DVD');
insert into videolar.filmes values(5,3,1,'TITANIC',2002,'VHS');
insert into videolar.filmes values(6,3,6,'VIDAS PASSADAS',1997,'VHS');
insert into videolar.genero values (1,'DRAMA');
insert into videolar.genero values (2,'AVENTURA');
insert into videolar.genero values (3,'INFANTIL');
insert into videolar.genero value (5,'COMEDIA');
COMMIT;
create role digitador;
create role gerente;
grant select,insert,update,delete on videolar.clientes to digitador;
grant select,insert,update,delete on videolar.genero to digitador;
grant select,insert,update,delete on videolar.locacao to digitador;
grant select,insert,update,delete on videolar.categoria to digitador;
grant select,insert,update,delete on videolar.filmes to digitador;
grant select,insert,update,delete on videolar.itens_locados to digitador;
grant digitador to dig01;
grant select on videolar.clientes to gerente;
grant select on videolar.genero to gerente;
grant select on videolar.categoria to gerente;
grant select on videolar.filmes to gerente;
grant select on videolar.itens_locados to gerente;
grant select on videolar.locacao to gerente;
grant connect to ger01;
grant connect to dig01;
Dicionário de dados
Podemos dizer que dicionário de dados, é um conjuto de tabelas e views somente leitura, utilizado pelo banco de dados Oracle. Este conjunto é criado e mantido pelo Oracle e contém informações sobre o banco de dados, o dicionário de dados é estruturado em tabelas e views, da mesma forma que outros dados do banco. O dicionário de dados é uma importante ferramenta para todos os usuários, desde usuários finais até os desenvolvedores, inclusive os DBA’s. Para acessar o dicionário de dados, é utilizado as instruções de SQL, como dito acima, é somente leitura, então, só vamos conseguir usar o SELECT. Todas as tabelas pertecem ao usuário SYS.
Que informações vamos encontrar na nas views de dicionário ?
As informações armazenadas no dicionário de dados incluem os nomes dos usuários do servidor Oracle, os privilegios concedidos aos usuários, os nomes dos objetos do banco de dados, as constraints de tabelas e as informações de auditoria. Há quatro categorias de views de dicionário de dados. Cada categoria possui um prefixo distinto que flete o uso pretendido.
| Prefixo | Significado |
| USER_ | Contém detalhes dos objetos pertencentes ao usuário. |
| ALL_ | Contém detalhes dos objetos para os quais o usuário ganhou direitos de acesso e dos objetos pertencentes ao usuário. |
| DBA_ | Contém detalhes dos usuários com privilégios de DBA para acessar qualquer objeto do banco de dados. |
| V$_ | Armazena informações sobre o desempenho ou bloqueio do servidor do banco de dados; disponível para os administradores do banco. |
Vejamos algumas views mais utilizadas:
Antes de começarmos a ver as tabelas do dicionário, podemos ver como elas se encontram dentro da tabela dicionário.
Antes de começarmos a ver as tabelas do dicionário, podemos ver como elas se encontram dentro da tabela dicionário.
Select * from dictionary;
USER_TABLES: Exibe a descrição de todas as tabelas do usuário.
Select * from user_tables;
ALL_TABLES: Exibe a descrição de todas as tabelas do usuário e as que foram concedidas a ele, mesmo ele não sendo o owner.
SELECT * FROM all_tables;
USER_OBJECTS: Exibe todos os objetos pertencentes ao seu usuário.
SELECT * FROM user_objects;
ALL_OBJECTS: Exibe todos os objetos que pertencem ao usuário e aos quais tem acesso.
SELECT * FROM all_objects;
USER_TAB_COLUMNS: Você obter informações detalhadas sobre as colunas das suas tabelas. No qual, você é o dono.
SELECT * FROM user_tab_columns;
USER_CONSTRAINTS: Exibe as definições de constrainsts nas tabelas, pertencentes a seu usuário.
SELECT * FROM user_constraints;
USER_CONS_COLUMNS: Exibe as definições de constraints nas colunas das tabelas, pertencentes ao seu usuário
SELECT * FROM user_cons_columns;
USER_VIEWS: Exibe as views pertencentes ao seu usuário.
SELECT * FROM user_views;
USER_SEQUENCES: Exibe informações das sequences criadas, pelo seu usuário.
SELECT * FROM user_sequences;
USER_SYNONYMS: Exibe os synonyms pertencentes ao seu usuário.
SELECT * FROM user_synonyms;
USER_TAB_PRIVS_MADE: Exibe todas as conexões feitas aos objetos pertencentes ao usuário
SELECT * FROM user_tab_privs_made;
USER_COL_PRIVS_MADE: Exibe todas as concessões feitas às colunas de objetos pertencentes ao usuário.
SELECT * FROM user_col_privs_made;
Espero que tenham gostado.
Um abraço.
fonte : http://aprenderoracle.com/2011/05/13/dicionario-de-dados/
terça-feira, 22 de setembro de 2015
shared pool free
select round ((sum (decode(name,'freee memory',bytes,0))/sum(bytes))*100,2)from v$sgastat
sorts in memory
select round((mem.value/(mem.value+dsk.value))*100,2)
from v$sysstat mem, v$sysstat dsk
where mem.name = 'sorts (memory)'
and dsk.name = 'sorts (disk)'
from v$sysstat mem, v$sysstat dsk
where mem.name = 'sorts (memory)'
and dsk.name = 'sorts (disk)'
LIBRARY CACHE HIT RATIO
select sum (pinhits)/sum (pins)"hit ratio",
sum(reloads)/sum (pins) "reload percent"
from v$librarycache
where namespace in
('SQL AREA','TABLE/PROCEDURE','BODY','TRIGGER')
sum(reloads)/sum (pins) "reload percent"
from v$librarycache
where namespace in
('SQL AREA','TABLE/PROCEDURE','BODY','TRIGGER')
Buffer cache hit ratios
select round ((1-(pr.value/(bg.value+cG.value)))*100,2)
from v$sysstat pr,v$sysstat bg,v$sysstat cg
where pr.name='physical reads'
and bg.name='db block gets'
and cg.name='consistent gets';
from v$sysstat pr,v$sysstat bg,v$sysstat cg
where pr.name='physical reads'
and bg.name='db block gets'
and cg.name='consistent gets';
Avaliação da Memória
select shared_pool_size_for_estimate tamanho_em_mb,
shared_pool_size_factor fator,
estd_lc_time_saved tempo
from v$shared_pool_advice
/
shared_pool_size_factor fator,
estd_lc_time_saved tempo
from v$shared_pool_advice
/
quarta-feira, 9 de setembro de 2015
Exercício ; simulação ' locks '
Passo 1 – Criando um perfil de usuário.
Create profile = Cria um perfil novo;
Perfil_Padrão = Nome do perfil (pode ser qualquer nome);
Limit sessions_per_user 1= Estipula um limite de um acesso por usuário.
Passo 2 – Criando usuário novo
Create user usr1 = Cria um novo usuário chamado usr1;
Profile perfil_padrão = Atribui a esse usuário o perfil criado no script
acima;
Identified by = Atribui uma senha para esse usuário (nesse caso a senha
é oracle);
Quota unlimited on users = O usuário pode usar memoria ilimitada da
table space;
Account unlock = A conta de usuário inicia desbloqueada;
Passo 3 – Criar um segundo usuário:
Identified by = Atribui uma senha para esse usuário (nesse caso a senha
é oracle);
Quota unlimited on users = O usuário pode usar memoria ilimitada da
table space;
Account unlock = A conta de usuário inicia desbloqueada;
Passo 4 – Dar autorização p/ os dois usuários:
Grant = Concede permissão;
Create table = criar tabela
Connect = conectar
Resource = recursos
Passo 5 – Em usr1 conectar, criar uma nova tabela e inserir dados.
Passo 6 – Em usr1 efetivar as transações.
Passo 7 – Dar permissão para o usuário 2 efetivar update na tabela
produto.
Passo 8 – Fazer um update na tabela produto
Passo 9 – Fazer um update na tabela produto.
Obs.: Sistema está em Lock pois o usr1 não commitou a primeira
transação.
Passo 10 – Entrar no usuário administrador e rodar o comando para ver
quem está travando a operação.
Passo 11 – Entrar no usuário administrador e rodar o comando para ver
quem está sendo travado na operação.
Passo 12 – Identificando a sessão que está causando o lock
Passo 13 – Finalizando a sessão que está causando o lock pelo modo kill
Create profile = Cria um perfil novo;
Perfil_Padrão = Nome do perfil (pode ser qualquer nome);
Limit sessions_per_user 1= Estipula um limite de um acesso por usuário.
Passo 2 – Criando usuário novo
Create user usr1 = Cria um novo usuário chamado usr1;
Profile perfil_padrão = Atribui a esse usuário o perfil criado no script
acima;
Identified by = Atribui uma senha para esse usuário (nesse caso a senha
é oracle);
Quota unlimited on users = O usuário pode usar memoria ilimitada da
table space;
Account unlock = A conta de usuário inicia desbloqueada;
Passo 3 – Criar um segundo usuário:
Identified by = Atribui uma senha para esse usuário (nesse caso a senha
é oracle);
Quota unlimited on users = O usuário pode usar memoria ilimitada da
table space;
Account unlock = A conta de usuário inicia desbloqueada;
Passo 4 – Dar autorização p/ os dois usuários:
Grant = Concede permissão;
Create table = criar tabela
Connect = conectar
Resource = recursos
Passo 5 – Em usr1 conectar, criar uma nova tabela e inserir dados.
Passo 6 – Em usr1 efetivar as transações.
Passo 7 – Dar permissão para o usuário 2 efetivar update na tabela
produto.
Passo 8 – Fazer um update na tabela produto
Passo 9 – Fazer um update na tabela produto.
Obs.: Sistema está em Lock pois o usr1 não commitou a primeira
transação.
Passo 10 – Entrar no usuário administrador e rodar o comando para ver
quem está travando a operação.
Passo 11 – Entrar no usuário administrador e rodar o comando para ver
quem está sendo travado na operação.
Passo 12 – Identificando a sessão que está causando o lock
Passo 13 – Finalizando a sessão que está causando o lock pelo modo kill
quinta-feira, 27 de agosto de 2015
salva o ultimo comando do buffer no diret¢rio
SAVE <caminho><nome_do_arquivo>
salva o ultimo comando do buffer no diret¢rio
salva o ultimo comando do buffer no diret¢rio
Abre o ultimo comando do buffer no bloco de notas
ED ;
abre o ultimo comando do buffer no bloco de notas
abre o ultimo comando do buffer no bloco de notas
Ver todas tabelas
1)Ver todas tabelas
SELECT * FROM ALL_ALL_TABLES
2)Caso seja necessário especificar o owner que a tabela pertença:
SELECT * FROM ALL_ALL_TABLES WHERE OWNER='NOME_OWNER'
Exemplo:
SELECT * FROM ALL_ALL_TABLES WHERE OWNER='marcio'
3)Caso seja necessário ver somente as tabelas de um determinado tablespace:
SELECT * FROM ALL_ALL_TABLES WHERE TABLESPACE_NAME='NOME_TABLESPACE'
Exemplo:
SELECT * FROM ALL_ALL_TABLES WHERE TABLESPACE_NAME='SYS'
SELECT * FROM ALL_ALL_TABLES
2)Caso seja necessário especificar o owner que a tabela pertença:
SELECT * FROM ALL_ALL_TABLES WHERE OWNER='NOME_OWNER'
Exemplo:
SELECT * FROM ALL_ALL_TABLES WHERE OWNER='marcio'
3)Caso seja necessário ver somente as tabelas de um determinado tablespace:
SELECT * FROM ALL_ALL_TABLES WHERE TABLESPACE_NAME='NOME_TABLESPACE'
Exemplo:
SELECT * FROM ALL_ALL_TABLES WHERE TABLESPACE_NAME='SYS'
Criar Usuario - CREATE USER nome_user IDENTIFIED BY senha
1- Criando usuario
Alterando
a senha, bloqueando/desbloqueando e excluindo usuários
Privilégios de Sistema
Privilégios de Objeto
CREATE USER marcio identified by aluno;
Criamos o usuário MARCIO com a senha ALUNO, esse usuário
foi criado de forma direta, ou seja, foi omitida a DEFAULT TABLESPACE e
TEMPORARY TABLESPACE, isso faz com que o Oracle assuma o padrão do banco. Nesse
caso assume de forma as tablespace SYSTEM e TEMP. Para checar as tablespaces
usadas na criação do usuário, pode ser executada o select aplicado na
2- Verificando as
teblespaces
SELECT
username,
default_tablespace,
temporary_tablespace
FROM
dba_users
WHERE
username = 'MARCIO';
3- Criando o
usuário passando de forma explicita as tablespace
CREATE USER mario2 identified by aluno2
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp;
Foi criado o usuário MARCIO2 com a senha ALUNO2, essa
usuário foi criado passando as tablespaces de forma explicita, tanto para
DEFAULT TABLESPACE como para TEMPORARY TABLESPACE.
4- Verificando as
tablespaces do usuário marcio2
SELECT
username,
default_tablespace,
temporary_tablespace
FROM
dba_users
WHERE
username = 'MARCIO2';
5- Verificando
as tablespace dos dois usuários
SELECT
username,
default_tablespace,
temporary_tablespace
FROM
dba_users
WHERE
username IN('MARCIO','MARCIO2');
Alterando
a senha, bloqueando/desbloqueando e excluindo usuários
.
6- Alterando
a senha do usuário
ALTER USER marcio identified by 4321;
7 - Desbloqueando um usuário
ALTER USER marcio identified by 4321 account unlock;
o ACCOUNT UNLOCK que tem a função de desbloquear o usuário,
nesse caso não é necessário á troca da senha, a menos que seja necessário.
8- Bloqueando
um usuário
ALTER USER marcio account lock;
o ACCOUNT LOCK que tem a função de bloquear o usuário,
nesse caso não o bloqueio não foi feito pelo oracle e sim feita por um outro
usuário do banco.
Por padrão o Oracle bloqueia a o usuário sempre que a senha
é errada dez vezes, para que se possa acessar novamente o banco com esse
usuário é necessário o desbloqueio. Quando, o usuário tem seu acesso bloqueado
o Oracle apresenta o erro ORA-28000.
9: Excluindo
um usuário
DROP USER marcio;
Na listagem 10 foi usado o comando DROP USER para remover o
usuário MARCIO.
Privilégios de Sistema
Como foi mencionado já anteriormente neste artigo, são os
privilégios que permitem executar instruções DDL, tais como create session, create
sequence, create synonym, create table, create view dentre vários outros.
10: Liberando
Privilégios de Sistema
GRANT create session,create table,create view TO marcio;
Na listagem 11 estão sendo liberados três privilégios de
sistema para o usuário MARCIO, nesse momento esse usuário passa a ter
privilégio de criar uma sessão de conexão no banco, e ainda pode criar tabelas
e views(visões) no banco Oracle. Sempre que for liberar privilégios temos a
opção e usar uma cláusula WITH ADMIN OPTION, isso permite que o usuário possa
estender seus privilégios para outros usuários.
11- WITH ADMIN OPTION
GRANT create session,create table,create view TO marcio WITH ADMIN OPTION;
Na listagem 11 estão sendo liberados três privilégios de
sistema para o usuário MARCIO, como foi adicionada a cláusula WITH ADMIN OPTION
significa que o usuário MARCIO pode estender seus privilégios de sistema para
outros usuários.
Privilégios de Objeto
Como foi mencionado já anteriormente neste artigo, são os
privilégios que permitem executar instruções DML, tais como select, insert,
update, delete dentre vários outros.
12- Liberando
Privilégios de Objeto
GRANT select, update ON HR.employees TO marcio;
Na listagem 12 estão sendo liberados privilégios de SELECT
e UPDATE na tabela EMPLOYEES que é do esquema HR para o usuário MARCIO. Vale
ressaltar que sempre que se está liberando privilégios a objetos de outro
usuário deve-se sempre colocar o nome do usuário(esquema) antes do nome do
objeto, como foi mostrando no exemplo da lista 12 HR.employees.
13- WITH GRANT OPTION
GRANT select,update ON HR.employees TO marcio WITH GRANT OPTION;
Na listagem 13 estão sendo liberados privilégios de SELECT
e UPDATE na tabela EMPLOYEES que é do esquema HR para o usuário MARCIO, no
final foi adicionada a cláusula WITH GRANT OPTION, significando que o usuário MARCIO
pode estender seus privilégios de objetos para outros usuários.
14- Revogando(Removendo)
de Sistema
REVOKE create view FROM marcio;
Na listagem 14 é apresentada a cláusula REVOKE que é
responsável por remover um privilégio de um usuário, seja ela um privilégio de
sistema ou objeto. Nesse caso está sendo removido o privilégio CREATE VIEW do
usuário MARCIO que é um privilégio de sistema.
15- Revogando(Removendo)
de Objetos
REVOKE insert ON HR.employees FROM marcio;
Na listagem 15 é apresentada a cláusula REVOKE que é
responsável por remover um privilégio de um usuário, seja ela um privilégio de
sistema ou objeto. Nessa caso está sendo removido o privilégio INSERT do
usuário MARCIO que é um privilégio de objeto
Apagar usuário
DROP USER nome_user; (se não tiver objetos)
DROP USER nome_user; CASCADE; (se tiver objetos)
Mostrar todos usuarios
select username
from dba_users
where username
not in('QS_CB','PERFSTAT','QS_ADM',
'PM','SH','HR','OE',
'ODM_MTR','WKPROXY','ANONYMOUS',
'OWNER','SYS','SYSTEM','SCOTT',
'SYSMAN','XDB','DBSNMP','EXFSYS',
'OLAPSYS','MDSYS','WMSYS','WKSYS',
'DMSYS','ODM','EXFSYS','CTXSYS','LBACSYS',
'ORDPLUGINS','SQLTXPLAIN','OUTLN',
'TSMSYS','XS$NULL','TOAD','STREAM',
'SPATIAL_CSW_ADMIN','SPATIAL_WFS_ADMIN',
'SI_INFORMTN_SCHEMA','QS','QS_CBADM',
'QS_CS','QS_ES','QS_OS','QS_WS','PA_AWR_USER',
'OWBSYS_AUDIT','OWBSYS','ORDSYS','ORDDATA',
'ORACLE_OCM','MGMT_VIEW','MDDATA',
'FLOWS_FILES','FLASHBACK','AWRUSER',
'APPQOSSYS','APEX_PUBLIC_USER',
'APEX_030200','FLOWS_020100');
from dba_users
where username
not in('QS_CB','PERFSTAT','QS_ADM',
'PM','SH','HR','OE',
'ODM_MTR','WKPROXY','ANONYMOUS',
'OWNER','SYS','SYSTEM','SCOTT',
'SYSMAN','XDB','DBSNMP','EXFSYS',
'OLAPSYS','MDSYS','WMSYS','WKSYS',
'DMSYS','ODM','EXFSYS','CTXSYS','LBACSYS',
'ORDPLUGINS','SQLTXPLAIN','OUTLN',
'TSMSYS','XS$NULL','TOAD','STREAM',
'SPATIAL_CSW_ADMIN','SPATIAL_WFS_ADMIN',
'SI_INFORMTN_SCHEMA','QS','QS_CBADM',
'QS_CS','QS_ES','QS_OS','QS_WS','PA_AWR_USER',
'OWBSYS_AUDIT','OWBSYS','ORDSYS','ORDDATA',
'ORACLE_OCM','MGMT_VIEW','MDDATA',
'FLOWS_FILES','FLASHBACK','AWRUSER',
'APPQOSSYS','APEX_PUBLIC_USER',
'APEX_030200','FLOWS_020100');
Assinar:
Comentários (Atom)












