Jak odzyskać utracone hasło SYS w bazie danych Oracle

  • Noah Scott
  • 0
  • 3777
  • 916

Ta pozycja obejmuje poniższe scenariusze:

  • Odzyskiwanie utraconego hasła sys przy użyciu uwierzytelniania systemu operacyjnego w systemie Unix.
  • Odzyskiwanie utraconego hasła sys przy użyciu uwierzytelniania pliku haseł w systemie Unix.
  • Odzyskiwanie utraconego hasła sys przy użyciu uwierzytelniania NTS w systemie Windows.
  • Odzyskiwanie utraconego hasła sys przy użyciu uwierzytelniania pliku haseł w systemie Windows.

Stosowane metody opierają się na:
1. Uwierzytelnianie systemu operacyjnego
2. uwierzytelnianie pliku z hasłem.

Odzyskiwanie utraconego hasła sys przy użyciu uwierzytelniania systemu operacyjnego w systemie Unix

1. Upewnij się, że zalogowany użytkownik systemu operacyjnego jest członkiem grupy dba. Jeśli grupa dba nie jest znana, sprawdź plik:

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

2. Upewnij się, że plik sqlnet.ora nie zawiera:

sqlnet.authentication_services

parametr. Jeśli ten parametr istnieje, należy go zakomentować.

3. sprawdź ORACLE_HOME, ORACLE_SID i ŚCIEŻKA parametry. Muszą odpowiadać parametrom instancji Oracle, w której utracono hasło SYS.

Jak sprawdzić zmienne środowiskowe dla procesu Oracle

4. połączyć się z instancją za pomocą:

$ sqlplus / nolog sql> connect / as sysdba

5. Zmień hasło sys za pomocą:

sql> zmiana sys użytkownika identyfikowanego przez [nowe hasło];

Jeśli plik haseł jest używany, polecenie zaktualizowałoby również plik haseł, więc nie ma potrzeby ponownego tworzenia tego pliku.

Odzyskiwanie utraconego hasła sys przy użyciu uwierzytelniania pliku haseł w systemie Unix

Jeśli hasło SYS nie jest znane, a uwierzytelnianie systemu operacyjnego nie jest opcją, można użyć tej metody. Ta metoda zakłada, że ​​konto SYS jest niedostępne, dlatego może być konieczne nagłe zamknięcie bazy danych.

1. Upewnij się, że parametr inicjalizacji REMOTE_LOGIN_PASSWORDFILE jest ustawione na WSPÓLNE lub EKSKLUZYWNY. Zmiana wartości tego parametru wymaga ponownego uruchomienia instancji.

2. Wyłącz uwierzytelnianie systemu operacyjnego, jeśli z jakiegoś powodu jest włączone, ustawiając:

sqlnet.authentication_services = (brak)

w pliku sqlnet.ora (przed dokonaniem jakichkolwiek zmian wykonaj kopię zapasową istniejącego pliku sqlnet.ora).

3. przejdź do miejsca docelowego systemu operacyjnego dla pliku haseł:

$ cd $ ORACLE_HOME / dbs

4. Utwórz kopię zapasową poprzedniego pliku z hasłami:

$ cp orapw $ ORACLE_SID orapw $ ORACLE_SID.bak

5. Odtwórz plik haseł za pomocą polecenia orapwd:

$ orapwd file = orapw $ ORACLE_SID hasło = [nowe hasło sys]

6. Spróbuj połączyć się przy użyciu nowego hasła.

$ sqlplus / nolog connect sys jako sysdba

7. W ramach dodatkowej kontroli, jeśli powyższe się powiodło, zapytaj:

sql> wybierz * z v $ pwfile_users;

Jeśli zwróci co najmniej jedną linię, wszystko jest w porządku i nowy plik z hasłami jest używany.

8. Zmień hasło sys w słowniku danych za pomocą:

sql> zmiana sys użytkownika identyfikowanego przez [nowe hasło];

Oczywiście, nowe hasło musi odpowiadać nowemu hasłu z pliku haseł, jeśli to hasło ma zostać zachowane, lub może być ustawione na coś innego, jeśli hasło początkowe ma zostać zmienione. To polecenie zaktualizowałoby również plik z hasłami.

9. Jeśli test w kroku nie powiedzie się, należy ponownie uruchomić instancję. Może się zdarzyć, że jeśli nie jest możliwy dostęp do sysdba lub sysoper, to instancja musi zostać nagle zamknięta, zrób to przez:

- zabijanie procesu w tle (najlepiej zabić SMON, aby PMON nadal mógł wykonać pewne porządki).
- usuwanie zasobów pamięci współdzielonej za pomocą ipcrm, jeśli nie zostały one usunięte przez mój PMON.

10. Po ponownym uruchomieniu instancji sprawdź, czy hasło SYS działa i czy jest w nim co najmniej jeden wpis v $ pwfile_users. Jeśli inni użytkownicy mieli wcześniej wpisy w pliku haseł, nadaj im ponownie SYSDBA lub SYSOPER.

11. W razie potrzeby przywróć plik sqlnet.ora z kopii zapasowej wykonanej w kroku 2.

Odzyskiwanie utraconego hasła sys przy użyciu uwierzytelniania NTS w systemie Windows

1. Upewnij się, że zalogowany użytkownik systemu operacyjnego jest członkiem grupy ORA_DBA systemu Windows.

2. Upewnij się również, że plik sqlnet.ora zawiera następujący wiersz:

sqlnet.authentication_services = (nts)

3. Połącz się z instancją za pomocą:

$ sqlplus / nolog connect / as sysdba

4. Zmień hasło sys za pomocą:

sql> zmiana sys użytkownika identyfikowanego przez [nowe hasło];

Jeśli plik haseł jest używany, polecenie zaktualizowałoby również plik haseł, więc nie ma potrzeby ponownego tworzenia tego pliku.

Odzyskiwanie utraconego hasła sys przy użyciu uwierzytelniania pliku haseł w systemie Windows

Jeśli hasło SYS nie jest znane, a uwierzytelnianie systemu operacyjnego nie jest opcją, można użyć tej metody. Ta metoda zakłada, że ​​konto SYS nie jest dostępne, dlatego może być konieczne zamknięcie bazy danych, można to osiągnąć, zatrzymując OracleServiceSID w systemie.

1.Upewnij się, że parametr inicjalizacji REMOTE_LOGIN_PASSWORDFILE jest ustawiony na SHARED lub EXCLUSIVE.

2. wyłącz uwierzytelnianie systemu operacyjnego, jeśli z jakiegoś powodu jest włączone, ustawiając:

sqlnet.authentication_services = (brak)

w pliku sqlnet.ora

3. przejdź do miejsca docelowego systemu operacyjnego dla pliku haseł:

cd% ORACLE_HOME% \ database

4. Utwórz kopię zapasową poprzedniego pliku z hasłami:

cp pwd [SID] .ora pwd [SID] .ora.bak

5. Odtwórz plik haseł za pomocą polecenia orapwd:

orapwd file = pwd [SID] .ora hasło = [nowe hasło sys]

6. Spróbuj połączyć się przy użyciu nowego hasła.

sqlplus / nolog connect sys jako sysdba

7. W ramach dodatkowej kontroli, jeśli powyższe się powiodło, zapytaj:

sql> wybierz * z v $ pwfile_users;

Jeśli zwróci co najmniej jedną linię, wszystko jest w porządku i nowy plik z hasłami jest używany.

8. zmień hasło sys w słowniku danych za pomocą:

sql> zmiana sys użytkownika identyfikowanego przez [nowe hasło];

Oczywiście, nowe hasło musi odpowiadać nowemu hasłu z pliku haseł, jeśli to hasło ma zostać zachowane, lub może być ustawione na coś innego, jeśli hasło początkowe ma zostać zmienione. To polecenie zaktualizowałoby również plik z hasłami.

9. Jeśli test w kroku nie powiedzie się, należy ponownie uruchomić instancję. Można to zrobić, ponownie uruchamiając usługę.

10. Po zrestartowaniu instancji sprawdź, czy hasło SYS działa i czy istnieje co najmniej jeden wpis w v $ pwfile_users. Jeśli inni użytkownicy mieli wcześniej wpisy w pliku haseł, nadaj im ponownie SYSDBA lub SYSOPER.

11. ponownie włącz uwierzytelnianie NTS, ustawiając:

sqlnet.authentication_services = (nts)

Jeśli potrzebne.




Jeszcze bez komentarzy

Zbiór przydatnych informacji o systemie operacyjnym Linux i nowych technologiach
Świeże artykuły, praktyczne wskazówki, szczegółowe recenzje i poradniki. Poczuj się jak w domu w świecie systemu operacyjnego Linux