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

Aplica comandos do sistema operacional

HOST <comando_do_SO>
 aplica comandos do sistema operacional

Abre o ultimo comando do buffer no bloco de notas

ED ;

 abre o ultimo comando do buffer no bloco de notas

Limpar tela

cl scr;

Lista o ultimo comando

L

Lista e executa o ultimo comando

run;

Executa o ultimo comando

/ (barra)


Mostrar usuario logado no banco

select user from dual

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' 

Conceder permissão -usuario

1) DBA

 GRANT DBA TO nome user

Criar Usuario - CREATE USER nome_user IDENTIFIED BY senha

1- Criando usuario
 
 
 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 tabela detalha tabela

desc nome_tabela;

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');