Gennaio 28, 2022

Il diario Geek

Questo pos copre gli scenari di seguito:

  • Recupero dalla password sys persa utilizzando l’autenticazione del sistema operativo su Unix.
  • Recupero della password sys persa utilizzando l’autenticazione passwordfile su Unix.
  • Recupero dalla password sys persa utilizzando l’autenticazione NTS su Windows.
  • Recupero della password sys persa utilizzando l’autenticazione passwordfile su Windows.

I metodi da utilizzare si basano su:
1. Autenticazione del sistema operativo
2. autenticazione passwordfile.

Recupero dalla password sys persa utilizzando l’autenticazione del sistema operativo su Unix

1. Assicurarsi che l’utente del sistema operativo connesso sia membro del gruppo dba. Se il gruppo dba non è noto, controllare il file:

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

2. Assicurarsi che il sqlnet.il file ora non contiene:

sqlnet.authentication_services

parametro. Se questo parametro esiste, dovrebbe essere commentato.

3. controllare i parametri ORACLE_HOME, ORACLE_SID e PATH. Devono corrispondere ai parametri dell’istanza Oracle in cui è stata persa la password SYS.

4. connettersi all’istanza utilizzando:

$ sqlplus /nologsql> connect / as sysdba

5. Cambia la password di sys usando:

sql> alter user sys identified by ;

Se è in uso un passwordfile, il comando aggiornerà anche il file della password, quindi non è necessario ricreare questo file.

Recupero della password sys persa utilizzando l’autenticazione passwordfile su Unix

Se la password SYS non è nota e l’autenticazione del sistema operativo non è un’opzione, questo metodo può essere utilizzato. Questo metodo presuppone che l’account SYS non sia accessibile, quindi potrebbe essere necessario un arresto brusco per il database.

1. Assicurarsi che il parametro di inizializzazione REMOTE_LOGIN_PASSWORDFILE sia impostato su SHARED o EXCLUSIVE. La modifica di questo valore del parametro richiede un riavvio dell’istanza.

2. Disabilitare l’autenticazione del sistema operativo, se è abilitato per qualche motivo, impostando:

sqlnet.authentication_services=(none)

nel sqlnet.ora file (backup del sqlnet esistente.prima di apportare modifiche).

3. vai alla destinazione del sistema operativo per la passwordfile:

$ cd $ORACLE_HOME/dbs

4. Crea un backup della password precedentefile:

$ cp orapw$ORACLE_SID orapw$ORACLE_SID.bak

5. Ricreare il passwordfile utilizzando il comando orapwd:

$ orapwd file=orapw$ORACLE_SID password=

6. Prova a connetterti usando la nuova password.

$ sqlplus /nologconnect sys as sysdba

7. Come ulteriore controllo, se quanto sopra ha successo, query:

sql> select * from v$pwfile_users;

Se restituisce almeno una riga, allora tutto è ok e il nuovo passwordfile è in uso.

8. Modificare la password sys nel dizionario dei dati utilizzando:

sql> alter user sys identified by ;

Naturalmente, la nuova password deve corrispondere alla nuova password del passwordfile, se quella password deve essere mantenuta, o può essere impostata su qualcos’altro se la password iniziale deve essere cambiata. Questo comando aggiornerebbe anche il passwordfile.

9. Se il test in step non ha esito positivo, l’istanza deve essere riavviata. Potrebbe essere che, se non è possibile accedere a sysdba o sysoper, l’istanza deve essere ridotta bruscamente, fallo con:

– uccidere un processo in background (preferibilmente uccidere SMON, quindi PMON può ancora fare un po ‘ di pulizia).
– rimozione delle risorse di memoria condivise utilizzando ipcrm se non vengono rimosse dal mio PMON.

10. Dopo aver riavviato l’istanza, verificare se la password SYS è operativa e se c’è almeno una voce in v pw pwfile_users. Se altri utenti in precedenza avevano voci nel passwordfile, concedere loro SYSDBA o SYSOPER di nuovo.

11. Ripristinare sqlnet.ora file dal backup eseguito al passo # 2, se necessario.

Recupero dalla password sys persa utilizzando l’autenticazione NTS su Windows

1. Assicurarsi che l’utente del sistema operativo connesso sia un membro del gruppo Windows ORA_DBA.

2. Assicurarsi inoltre che il sqlnet.il file ora ha la seguente riga:

sqlnet.authentication_services = (nts)

3. Connettersi all’istanza utilizzando:

$ sqlplus /nologconnect / as sysdba

4. Cambia la password di sys usando:

sql> alter user sys identified by ;

Se è in uso un passwordfile, il comando aggiornerà anche il file della password, quindi non è necessario ricreare questo file.

Recupero della password sys persa utilizzando l’autenticazione passwordfile su Windows

Se la password SYS non è nota e l’autenticazione del sistema operativo non è un’opzione, è possibile utilizzare questo metodo. Questo metodo presuppone che l’account SYS non sia accessibile, quindi potrebbe essere necessario un arresto per il database, che può essere eseguito arrestando OracleServiceSID sul sistema.

1. Assicurarsi che il parametro di inizializzazione REMOTE_LOGIN_PASSWORDFILE sia impostato su SHARED o EXCLUSIVE.

2. disabilitare l’autenticazione del sistema operativo, se è abilitato per qualche motivo, impostando:

sqlnet.authentication_services=(none)

nel sqlnet.ora file

3. vai alla destinazione del sistema operativo per la passwordfile:

cd %ORACLE_HOME%\database

4. Crea un backup della password precedentefile:

cp pwd.ora pwd.ora.bak

5. Ricreare il passwordfile utilizzando il comando orapwd:

orapwd file=pwd.ora password=

6. Prova a connetterti usando la nuova password.

sqlplus /nologconnect sys as sysdba

7. Come ulteriore controllo, se quanto sopra ha successo, query:

sql> select * from v$pwfile_users;

Se restituisce almeno una riga, allora tutto è ok e il nuovo passwordfile è in uso.

8. modificare la password sys nel dizionario dei dati utilizzando:

sql> alter user sys identified by ;

Naturalmente, la nuova password deve corrispondere alla nuova password del passwordfile, se quella password deve essere mantenuta, o può essere impostata su qualcos’altro se la password iniziale deve essere cambiata. Questo comando aggiornerebbe anche il passwordfile.

9. Se il test in step non ha esito positivo, l’istanza deve essere riavviata. Questo può essere fatto riavviando il servizio.

10. Dopo aver riavviato l’istanza, verificare se la password SYS è operativa e se c’è almeno una voce in v pw pwfile_users. Se altri utenti in precedenza avevano voci nel passwordfile, concedere loro SYSDBA o SYSOPER di nuovo.

11. riattivare l’autenticazione NTS impostando:

sqlnet.authentication_services=(nts)

se necessario.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.