Um pequeno lembrete para mim. Estou migrando do Oracle 9i para o 10g utilizando export e import.
O export por esquema “exp… owner… ” não traz para o Oracle 10g os usuários, portanto a importação irá falhar. O jeito é exportar primeiro os usuários. O procedimento é simples, basta puxar os usuários da tabela ‘dba_users’, mas um pequeno detalhe deve ser observado na importação da senha.
Segue o script:
SELECT 'CREATE USER ' || username || ' IDENTIFIED BY VALUES ''' || password || ''' DEFAULT TABLESPACE ' || default_tablespace || ';' FROM dba_users WHERE password != 'EXTERNAL' AND password != 'GLOBAL' AND default_tablespace NOT IN ('EXAMPLE','DRSYS','CWMLITE','ODM','XDB','SYSTEM') ORDER BY default_tablespace, username ; SELECT 'CREATE USER ' || username || ' IDENTIFIED BY EXTERNAL DEFAULT TABLESPACE ' || default_tablespace || ';' FROM dba_users WHERE password = 'EXTERNAL' ; SELECT 'CREATE USER ' || username || ' IDENTIFIED GLOBALLY AS ''' || external_name || ''' DEFAULT TABLESPACE ' || default_tablespace || ';' FROM dba_users WHERE password = 'GLOBAL' ; SELECT 'ALTER USER ' || username || ' QUOTA UNLIMITED ON ' || tablespace_name || ';' FROM dba_ts_quotas;
Não é nada complexo, mas o detalhe está justamente no uso da senha criptografada. Na documentação da Oracle sobre o comando CREATE USER, não aparece nada sobre a opção de criar um usuário com uma senha criptografada, somente com uma senha normal, que precisa clausula ‘VALUES’. Bom… demorei para lembrar deste pequeno detalhe, agora não esqueço mais!



Posts (RSS)