28 ledna, 2022

deník Geek

tento pos pokrývá níže uvedené scénáře:

  • Obnova ztraceného hesla sys pomocí ověřování OS v Unixu.
  • obnovení ztraceného hesla sys pomocí ověřování passwordfile v Unixu.
  • obnovení ztraceného hesla sys pomocí ověřování NTS v systému Windows.
  • obnovení ztraceného hesla sys pomocí ověřování passwordfile v systému Windows.

použité metody se opírají o:
1. Ověření OS
2. ověření passwordfile.

Obnova ztraceného hesla sys pomocí ověřování OS v Unixu

1. Ujistěte se, že uživatel operačního systému, který je přihlášen, je členem skupiny dba. Pokud skupina dba není známa, zkontrolujte soubor:

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

2. Ujistěte se, že sqlnet.soubor ora neobsahuje:

sqlnet.authentication_services

parametr. Pokud tento parametr existuje, měl by být komentován.

3. zkontrolujte parametry ORACLE_HOME, ORACLE_SID a PATH. Musí odpovídat parametrům instance Oracle, kde bylo heslo SYS ztraceno.

4. připojte se k instanci pomocí:

$ sqlplus /nologsql> connect / as sysdba

5. Změňte heslo sys pomocí:

sql> alter user sys identified by ;

pokud se používá passwordfile, příkaz by také aktualizoval soubor s heslem, takže není třeba tento soubor znovu vytvářet.

obnovení ztraceného hesla sys pomocí ověřování passwordfile v Unixu

Pokud heslo SYS není známo a ověřování OS není možné, lze tuto metodu použít. Tato metoda předpokládá, že účet SYS není přístupný, a proto by mohlo být nutné náhlé vypnutí databáze.

1. Ujistěte se, že Inicializační parametr REMOTE_LOGIN_PASSWORDFILE je nastaven na sdílený nebo exkluzivní. Změna této hodnoty parametru vyžaduje restart instance.

2. Zakázat ověřování OS, pokud je z nějakého důvodu povoleno, nastavením:

sqlnet.authentication_services=(none)

v sqlnet.soubor ora (zálohujte existující sqlnet.ora soubor před provedením jakýchkoli změn).

3. přejděte do cíle OS pro soubor hesel:

$ cd $ORACLE_HOME/dbs

4. Vytvořte zálohu předchozího hesla:

$ cp orapw$ORACLE_SID orapw$ORACLE_SID.bak

5. Znovu vytvořte soubor hesel pomocí příkazu orapwd:

$ orapwd file=orapw$ORACLE_SID password=

6. Zkuste se připojit pomocí nového hesla.

$ sqlplus /nologconnect sys as sysdba

7. Jako další kontrolu, pokud je výše uvedené úspěšné, dotaz:

sql> select * from v$pwfile_users;

pokud vrátí alespoň jeden řádek, pak je vše v pořádku a nový passwordfile se používá.

8. Změňte heslo sys ve slovníku dat pomocí:

sql> alter user sys identified by ;

nové heslo se samozřejmě musí shodovat s novým heslem hesla, pokud má být toto heslo zachováno, nebo může být nastaveno na něco jiného, pokud má být původní heslo změněno. Tento příkaz by také aktualizoval soubor hesel.

9. Pokud test v kroku neuspěje, musí být instance restartována. Může se stát, že pokud není možný přístup sysdba nebo sysoper, musí být instance náhle snížena, proveďte to:

– zabití procesu na pozadí (nejlépe zabít SMON, takže PMON může stále provést nějaké vyčištění).
– odebrání prostředků sdílené paměti pomocí ipcrm, pokud nejsou odstraněny mým PMON.

10. Po restartování instance zkontrolujte, zda je heslo SYS funkční a zda je ve v$pwfile_users alespoň jedna položka. Pokud ostatní uživatelé dříve měli položky v heslesoubor, udělit jim SYSDBA nebo SYSOPER znovu.

11. Obnovte sqlnet.ora soubor ze zálohy provedený v kroku #2, v případě potřeby.

obnovení ztraceného hesla sys pomocí ověřování NTS v systému Windows

1. Ujistěte se, že uživatel operačního systému, který je přihlášen, je členem skupiny Windows ORA_DBA.

2. Také se ujistěte, že sqlnet.soubor ora má následující řádek:

sqlnet.authentication_services = (nts)

3. Připojte se k instanci pomocí:

$ sqlplus /nologconnect / as sysdba

4. Změňte heslo sys pomocí:

sql> alter user sys identified by ;

pokud se používá passwordfile, příkaz by také aktualizoval soubor s heslem, takže není třeba tento soubor znovu vytvářet.

obnovení ztraceného hesla sys pomocí ověření passwordfile v systému Windows

Pokud heslo SYS není známo a ověření OS není možné, lze tuto metodu použít. Tato metoda předpokládá, že účet SYS není přístupný, proto by mohlo být zapotřebí vypnutí databáze, toho lze dosáhnout zastavením OracleServiceSID ve vašem systému.

1. Ujistěte se, že Inicializační parametr REMOTE_LOGIN_PASSWORDFILE je nastaven na sdílený nebo exkluzivní.

2. zakázat ověřování OS, pokud je z nějakého důvodu povoleno, nastavením:

sqlnet.authentication_services=(none)

v sqlnet.soubor ora

3. přejděte do cíle OS pro soubor hesel:

cd %ORACLE_HOME%\database

4. Vytvořte zálohu předchozího hesla:

cp pwd.ora pwd.ora.bak

5. Znovu vytvořte soubor hesel pomocí příkazu orapwd:

orapwd file=pwd.ora password=

6. Zkuste se připojit pomocí nového hesla.

sqlplus /nologconnect sys as sysdba

7. Jako další kontrolu, pokud je výše uvedené úspěšné, dotaz:

sql> select * from v$pwfile_users;

pokud vrátí alespoň jeden řádek, pak je vše v pořádku a nový passwordfile se používá.

8. změňte heslo sys ve slovníku dat pomocí:

sql> alter user sys identified by ;

nové heslo se samozřejmě musí shodovat s novým heslem hesla, pokud má být toto heslo zachováno, nebo může být nastaveno na něco jiného, pokud má být původní heslo změněno. Tento příkaz by také aktualizoval soubor hesel.

9. Pokud test v kroku neuspěje, musí být instance restartována. To lze provést restartováním služby.

10. Po restartování instance zkontrolujte, zda je heslo SYS funkční a zda je ve v$pwfile_users alespoň jedna položka. Pokud ostatní uživatelé dříve měli položky v heslesoubor, udělit jim SYSDBA nebo SYSOPER znovu.

11. znovu povolit ověřování NTS nastavením:

sqlnet.authentication_services=(nts)

v případě potřeby.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.