segunda-feira, 1 de junho de 2009

Case Sensitive Oracle 11g

Boa Noite a todos. Sei que deveria escrever mais. Infelizmente meu tempo é muito curto, pois realmente é bom para mim também pois tenho que melhorar cada vez mais minha curva de aprendizado em Banco de Dados Oracle.

Bom então vamos lá!!!
O case sensitive como o próprio nome diz, é um termo em computação que significa que um programa ou um compilador faz a diferença entre letras maiúsculas e minúsculas. No caso, isso já faz parte do Oracle 11g, e para verificarmos se o case sensive está ativo basta digitarmos o comando a seguir:
SHOW PARAMETER SEC_CASE_SENSITIVE_LOGON;
Deverá retornar True ou False. E para desligarmos o CASE SENSITIVE basta realizarmos o seguinte comando:
ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE;
Vejamos agora na um exemplo de sua funcionalidade com estado True:
CONN / AS SYSDBAALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = TRUE;
CREATE USER test2 IDENTIFIED BY Test2;
GRANT CONNECT TO test2;
Agora então vamos tentar conectar:
SQL> CONN test2/Test2
Connected.
SQL> CONN test2/test2
ERROR:ORA-01017: invalid username/password; logon denied
Warning: You are no longer connected to ORACLE.
DICA: Para você ver o usuario e a versão do password basta, damos um select assim:
SELECT username, password_versions FROM dba_users;
Lembrando que temos que dar com usuario máximo do banco.
Então nem sempre o CASE SENSITIVE vai ser interessante, cada um irá saber a hora de ativar ou desativar.
Abraço a todos e até a próxima
Fabio Bohnstedt

terça-feira, 19 de maio de 2009

Movimentação de DATAFILES

Olá pessoal, segue abaixo uma maneira simples, de como realizar a movimentação de um datafile

Primeiro, vamos colocar a tablespace em read only e offline:

alter tablespace read only;
alter tablespace offline;

Pronto! Agora é somente copiar o datafile para o novo local e realizar os seguintes comandos:

alter tablespace rename datafile
'c:\caminho antigo\nome_datafile' to 'c:\caminho novo\nome_datafile';

Importante que não esqueçamos de colocar novamente online e read write:

alter tablespace online;
alter tablespace read write;

Agora se executarmos um select com um join, pegando como referência da tabela dba_tablespaces e o caminho do datafile na tabela dba_data_file apenas para verificarmos se foi realizada a mudança segue abaixo o seguinte comando:

select tb.tablespace_name,tb.status,dt.file_name,dt.bytes/1024 from dba_tablespaces tb join
dba_data_files dt on tb.tablespace_name = dt.tablespace_name;


Bom pessoal, espero ter ajudado, até a próxima matéria.
Um abraço a todos
Att.
Fabio Bohnstedt