Janeiro 28, 2022

The Geek Diary

este pos cobre os cenários abaixo:

  • recuperando-se da senha perdida do sistema usando a autenticação do sistema operacional no Unix.
  • recuperando a senha perdida do sys usando autenticação passwordfile no Unix.
  • recuperação de senha perdida do sistema usando autenticação NTS no Windows.
  • recuperando a senha perdida do sistema usando a autenticação passwordfile no Windows.

os métodos a serem usados dependem de:
1. Autenticação do sistema operacional
2. autenticação passwordfile.

recuperação da senha perdida do sistema usando a autenticação do sistema operacional no Unix

1. Certifique-se de que o usuário do sistema operacional conectado seja membro do grupo dba. Se o grupo dba não for conhecido, verifique o arquivo:

$ ORACLE_HOME/rdbms/lib/config.c (or config.s)

2. Certifique-se de que o sqlnet.o arquivo ora não contém:

sqlnet.authentication_services

parâmetro. Se esse parâmetro existir, ele deve ser comentado.

3. verifique os parâmetros ORACLE_HOME, ORACLE_SID e PATH. Eles devem corresponder aos parâmetros da instância Oracle em que a senha do sistema foi perdida.

4. conecte-se à instância usando:

$ sqlplus /nologsql> connect / as sysdba

5. Alterar a senha do sistema usando:

sql> alter user sys identified by ;

se um passwordfile estiver em uso, o comando atualizará o arquivo de senha também, portanto, não há necessidade de recriar esse arquivo.

recuperando a senha perdida do sys usando autenticação passwordfile no Unix

se a senha do SYS não for conhecida e a autenticação do SO não for uma opção, esse método pode ser usado. Este método assume que a conta SYS não está acessível, portanto, um desligamento abrupto para o banco de dados pode ser necessário.

1. Certifique-se de que o parâmetro de inicialização REMOTE_LOGIN_PASSWORDFILE esteja definido como compartilhado ou exclusivo. Alterar esse valor de parâmetro requer uma reinicialização da instância.

2. Desative a autenticação do sistema operacional, se estiver ativada por algum motivo, definindo:

sqlnet.authentication_services=(none)

no sqlnet.arquivo ora (faça backup do sqlnet existente.arquivo ora antes de fazer quaisquer alterações).

3. vá para o destino do sistema operacional para o passwordfile:

$ cd $ORACLE_HOME/dbs

4. Faça um backup do arquivo de senha anterior:

$ cp orapw$ORACLE_SID orapw$ORACLE_SID.bak

5. Recrie o arquivo de senha usando o comando orapwd:

$ orapwd file=orapw$ORACLE_SID password=

6. Tente se conectar usando a nova senha.

$ sqlplus /nologconnect sys as sysdba

7. Como uma verificação adicional, se o acima for bem-sucedido, consulte:

sql> select * from v$pwfile_users;

se retornar pelo menos uma linha, então tudo está ok e o novo passwordfile está em uso.

8. Alterar a senha do sys no dicionário de dados usando:

sql> alter user sys identified by ;

claro, a nova senha deve corresponder à senha nova do passwordfile, se a senha deve ser mantida, ou ele pode ser configurado para outra coisa, se a senha inicial é para ser alterado. Este comando atualizaria o passwordfile também.

9. Se o teste na etapa não for bem-sucedido, a instância deve ser reiniciada. Pode ser que, se nenhum acesso sysdba ou sysoper for possível, que a instância deve ser derrubada abruptamente, faça isso por:

– matando um processo em segundo plano (de preferência matar SMON, então PMON ainda pode fazer alguma limpeza).
– removendo os recursos de memória compartilhada usando ipcrm se eles não forem removidos pelo meu PMON.

10. Depois de reiniciar a instância, verifique se a senha do sistema está operacional e se há pelo menos uma entrada em v$pwfile_users. Se outros usuários já tiveram entradas no passwordfile, conceda-lhes SYSDBA ou SYSOPER novamente.

11. Restaurar o sqlnet.ora arquivo do backup executado na Etapa #2, se necessário.

recuperação de senha perdida do sistema usando autenticação NTS no Windows

1. Certifique-se de que o usuário do sistema operacional conectado seja membro do Grupo ORA_DBA do Windows.

2. Certifique – se também de que o sqlnet.o arquivo ora tem a seguinte linha:

sqlnet.authentication_services = (nts)

3. Conecte-se à instância usando:

$ sqlplus /nologconnect / as sysdba

4. Alterar a senha do sistema usando:

sql> alter user sys identified by ;

se um passwordfile estiver em uso, o comando atualizará o arquivo de senha também, portanto, não há necessidade de recriar esse arquivo.

recuperando a senha perdida do sys usando autenticação passwordfile no Windows

se a senha do SYS não for conhecida e a autenticação do SO não for uma opção, esse método pode ser usado. Este método assume que a conta SYS não está acessível, portanto, um desligamento para o banco de dados pode ser necessário, isso pode ser feito parando o OracleServiceSID em seu sistema.

1. Certifique-se de que o parâmetro de inicialização REMOTE_LOGIN_PASSWORDFILE esteja definido como compartilhado ou exclusivo.

2. desative a autenticação do sistema operacional, se estiver ativada por algum motivo, definindo:

sqlnet.authentication_services=(none)

no sqlnet.arquivo ora

3. vá para o destino do sistema operacional para o passwordfile:

cd %ORACLE_HOME%\database

4. Faça um backup do arquivo de senha anterior:

cp pwd.ora pwd.ora.bak

5. Recrie o arquivo de senha usando o comando orapwd:

orapwd file=pwd.ora password=

6. Tente se conectar usando a nova senha.

sqlplus /nologconnect sys as sysdba

7. Como uma verificação adicional, se o acima for bem-sucedido, consulte:

sql> select * from v$pwfile_users;

se retornar pelo menos uma linha, então tudo está ok e o novo passwordfile está em uso.

8. alterar a senha do sys no dicionário de dados usando:

sql> alter user sys identified by ;

claro, a nova senha deve corresponder à senha nova do passwordfile, se a senha deve ser mantida, ou ele pode ser configurado para outra coisa, se a senha inicial é para ser alterado. Este comando atualizaria o passwordfile também.

9. Se o teste na etapa não for bem-sucedido, a instância deve ser reiniciada. Isso pode ser feito reiniciando o serviço.

10. Depois de reiniciar a instância, verifique se a senha do sistema está operacional e se há pelo menos uma entrada em v$pwfile_users. Se outros usuários já tiveram entradas no passwordfile, conceda-lhes SYSDBA ou SYSOPER novamente.

11. reativar a autenticação NTS definindo:

sqlnet.authentication_services=(nts)

se necessário.

Deixe uma resposta

O seu endereço de email não será publicado.