Januar 28, 2022

Das Geek-Tagebuch

Dieser Artikel behandelt die folgenden Szenarien:

  • Wiederherstellung des verlorenen Sys-Passworts mithilfe der Betriebssystemauthentifizierung unter Unix.
  • Wiederherstellen des verlorenen Sys-Kennworts mithilfe der Passwordfile-Authentifizierung unter Unix.
  • Wiederherstellen eines verlorenen Sys-Kennworts mithilfe der NTS-Authentifizierung unter Windows.
  • Wiederherstellen des verlorenen Sys-Kennworts mithilfe der Passwordfile-Authentifizierung unter Windows.

Die zu verwendenden Methoden beruhen auf:
1. Betriebssystemauthentifizierung
2. passwortdatei-Authentifizierung.

Wiederherstellen des verlorenen Sys-Kennworts mithilfe der Betriebssystemauthentifizierung unter Unix

1. Stellen Sie sicher, dass der angemeldete Betriebssystembenutzer Mitglied der dba-Gruppe ist. Wenn die DBA-Gruppe nicht bekannt ist, überprüfen Sie die Datei:

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

2. Stellen Sie sicher, dass das sqlnet.ora-Datei enthält nicht die:

sqlnet.authentication_services

parameter. Wenn dieser Parameter vorhanden ist, sollte er auskommentiert werden.

3. überprüfen Sie die Parameter ORACLE_HOME, ORACLE_SID und PATH. Sie müssen den Parametern der Oracle-Instanz entsprechen, bei der das SYS-Kennwort verloren gegangen ist.

4. stellen Sie über eine Verbindung zur Instanz her:

$ sqlplus /nologsql> connect / as sysdba

5. Ändern Sie das Sys-Passwort mit:

sql> alter user sys identified by ;

Wenn eine passwordfile verwendet wird, aktualisiert der Befehl auch die Passwortdatei, sodass diese Datei nicht neu erstellt werden muss.

Wiederherstellen des verlorenen Sys-Kennworts mithilfe der Passwordfile-Authentifizierung unter Unix

Wenn das SYS-Kennwort nicht bekannt ist und die Betriebssystemauthentifizierung keine Option ist, kann diese Methode verwendet werden. Bei dieser Methode wird davon ausgegangen, dass auf das SYS-Konto nicht zugegriffen werden kann, sodass möglicherweise ein abruptes Herunterfahren der Datenbank erforderlich ist.

1. Stellen Sie sicher, dass der Initialisierungsparameter REMOTE_LOGIN_PASSWORDFILE auf SHARED oder EXCLUSIVE gesetzt ist. Das Ändern dieses Parameterwerts erfordert einen Neustart der Instanz.

2. Deaktivieren Sie die Betriebssystemauthentifizierung, wenn sie aus irgendeinem Grund aktiviert ist, indem Sie Folgendes festlegen:

sqlnet.authentication_services=(none)

im sqlnet.ora-Datei (Sichern Sie das vorhandene sqlnet.ora-Datei, bevor Sie Änderungen vornehmen).

3. wechseln Sie zum OS-Ziel für die passwordfile:

$ cd $ORACLE_HOME/dbs

4. Erstellen Sie eine Sicherungskopie der vorherigen Passwortdatei:

$ cp orapw$ORACLE_SID orapw$ORACLE_SID.bak

5. Erstellen Sie die Passwortdatei mit dem Befehl orapwd neu:

$ orapwd file=orapw$ORACLE_SID password=

6. Versuchen Sie, eine Verbindung mit dem neuen Kennwort herzustellen.

$ sqlplus /nologconnect sys as sysdba

7. Als zusätzliche Prüfung, wenn die oben erfolgreich ist, Abfrage:

sql> select * from v$pwfile_users;

Wenn mindestens eine Zeile zurückgegeben wird, ist alles in Ordnung und die neue Passwortdatei wird verwendet.

8. Ändern Sie das sys-Passwort im Data Dictionary mit:

sql> alter user sys identified by ;

Natürlich muss das neue Passwort mit dem neuen Passwort der Passwortdatei übereinstimmen, wenn dieses Passwort beibehalten werden soll, oder es kann auf etwas anderes gesetzt werden, wenn das ursprüngliche Passwort geändert werden soll. Dieser Befehl würde auch die passwordfile aktualisieren.

9. Wenn der Test in Schritt nicht erfolgreich ist, muss die Instanz neu gestartet werden. Es könnte sein, dass, wenn kein sysdba– oder Sysoper-Zugriff möglich ist, die Instanz abrupt heruntergefahren werden muss, indem Sie:

– einen Hintergrundprozess beenden (vorzugsweise SMON beenden, damit PMON noch bereinigt werden kann).
– Entfernen der gemeinsam genutzten Speicherressourcen mit ipcrm, wenn sie nicht von meiner PMON entfernt werden.

10. Überprüfen Sie nach dem Neustart der Instanz, ob das SYS-Kennwort betriebsbereit ist und ob mindestens ein Eintrag in v$pwfile_users vorhanden ist. Wenn andere Benutzer zuvor Einträge in der Passwortdatei hatten, erteilen Sie ihnen erneut SYSDBA oder SYSOPER.

11. Stellen Sie das sqlnet wieder her.ora-Datei aus dem Backup bei Schritt # 2 ausgeführt, falls erforderlich.

Wiederherstellen eines verlorenen Sys-Kennworts mithilfe der NTS-Authentifizierung unter Windows

1. Stellen Sie sicher, dass der angemeldete Betriebssystembenutzer Mitglied der Windows ORA_DBA-Gruppe ist.

2. Stellen Sie außerdem sicher, dass das sqlnet.ora-Datei hat die folgende Zeile:

sqlnet.authentication_services = (nts)

3. Stellen Sie über eine Verbindung zur Instanz her:

$ sqlplus /nologconnect / as sysdba

4. Ändern Sie das Sys-Passwort mit:

sql> alter user sys identified by ;

Wenn eine passwordfile verwendet wird, aktualisiert der Befehl auch die Passwortdatei, sodass diese Datei nicht neu erstellt werden muss.

Wiederherstellen des verlorenen Sys-Kennworts mithilfe der Passwordfile-Authentifizierung unter Windows

Wenn das SYS-Kennwort nicht bekannt ist und die Betriebssystemauthentifizierung keine Option ist, kann diese Methode verwendet werden. Diese Methode geht davon aus, dass auf das SYS-Konto nicht zugegriffen werden kann, daher kann ein Herunterfahren der Datenbank erforderlich sein.

1. Stellen Sie sicher, dass der Initialisierungsparameter REMOTE_LOGIN_PASSWORDFILE auf SHARED oder EXCLUSIVE gesetzt ist.

2. deaktivieren Sie die Betriebssystemauthentifizierung, wenn sie aus irgendeinem Grund aktiviert ist, indem Sie Folgendes festlegen:

sqlnet.authentication_services=(none)

im sqlnet.ora-Datei

3. wechseln Sie zum OS-Ziel für die passwordfile:

cd %ORACLE_HOME%\database

4. Erstellen Sie eine Sicherungskopie der vorherigen Passwortdatei:

cp pwd.ora pwd.ora.bak

5. Erstellen Sie die Passwortdatei mit dem Befehl orapwd neu:

orapwd file=pwd.ora password=

6. Versuchen Sie, eine Verbindung mit dem neuen Kennwort herzustellen.

sqlplus /nologconnect sys as sysdba

7. Als zusätzliche Prüfung, wenn die oben erfolgreich ist, Abfrage:

sql> select * from v$pwfile_users;

Wenn mindestens eine Zeile zurückgegeben wird, ist alles in Ordnung und die neue Passwortdatei wird verwendet.

8. ändern Sie das sys-Passwort im Data Dictionary mit:

sql> alter user sys identified by ;

Natürlich muss das neue Passwort mit dem neuen Passwort der Passwortdatei übereinstimmen, wenn dieses Passwort beibehalten werden soll, oder es kann auf etwas anderes gesetzt werden, wenn das ursprüngliche Passwort geändert werden soll. Dieser Befehl würde auch die passwordfile aktualisieren.

9. Wenn der Test in Schritt nicht erfolgreich ist, muss die Instanz neu gestartet werden. Dies kann durch einen Neustart des Dienstes erfolgen.

10. Überprüfen Sie nach dem Neustart der Instanz, ob das SYS-Kennwort betriebsbereit ist und ob mindestens ein Eintrag in v$pwfile_users vorhanden ist. Wenn andere Benutzer zuvor Einträge in der Passwortdatei hatten, erteilen Sie ihnen erneut SYSDBA oder SYSOPER.

11. aktivieren Sie die NTS-Authentifizierung erneut, indem Sie Folgendes festlegen:

sqlnet.authentication_services=(nts)

wenn nötig.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.