Das Rätsel um die Passwort-Datei und den Parameter REMOTE_LOGIN_PASSWORDFILE
Haben Sie sich nicht auch schon einmal gefragt, was es mit der Passwort-Datei und dem Initialisierungsparameter REMOTE_LOGIN_PASSWORDFILE eigentlich auf sich hat?? Unter welchen Umständen klappt die Anmeldung als SYSDBA und wann scheitert der Versuch?
Im folgenden Beitrag erhalten Sie einen Einblick in den Gebrauch des Dienstprogramms ORAPWD und die Steuerung des SYSDBA-Zugriffs über den init.ora-Parameter REMOTE_LOGIN_PASSWORDFILE.
Erzeugen einer Passwort-Datei über ORAPWD
Die übliche Methode zur Identifizierung von Benutzern mit SYSDBA oder SYSOPER-Berechtigung besteht in der Nutzung der sog. Passwort-Datei. Diese Datei wird bei der Standard-Installation der Datenbank im Verzeichnis %ORACLE_HOME%\database (NT) bzw. $ORACLE_HOME/dbs (Unix) angelegt. Ihr Name lautet pwd<sid>.ora.
Achtung: Das Löschen oder Verschieben der Passwort-Datei macht eine Anmeldung als SYSDBA u.U. unmöglich. Also sorgsam damit umgehen!!
Falls es dennoch notwendig sein sollte, eine neue Passwort-Datei anzulegen, wird dies auf Betriebssystemebene mit dem Tool ORAPWD gemacht:
C:> orapwd file=<pfad\name> password=<pwd> entries=<anzahl>
wobei file den Pfad und Namen der Passwort-Datei angibt, password legt das Kennwort vom Benutzer SYS fest und entries bestimmt, wie viele Einträge in die Datei aufgenommen werden können. Die Parameter file und password müssen angegeben werden (mandatory), entries ist optional.
Beispiel (unter NT):
C:> orapwd file=d:\oracle\ora92\database\pwdora9.ora password=geheim entries=10
Hinweis: Setzen Sie für entries einen genügend großen Wert, so dass alle Benutzer mit SYSDBA oder SYSOPER-Berechtigungen aufgenommen werden können. Falls der Wert nicht ausreichen sollte, muss die Datei neu erzeugt werden. Bereits bestehende Einträge verlieren ihre Gültigkeit und müssen neu hinzugefügt werden.
Der Initialisierungsparameter REMOTE_LOGIN_PASSWORDFILE
Die eben angesprochene Passwort-Datei wird nur verwendet, wenn der init.ora-Parameter REMOTE_LOGIN_PASSWORDFILE entsprechend gesetzt worden ist. Folgende Werte sind dabei möglich:
Der Parameter REMOTE_LOGIN_PASSWORDFILE ist statisch. Nach Änderung der Einstellung müssen Sie die Instanz neu starten.
SQL> ALTER SYSTEM SET remote_login_passwordfile=’EXCLUSIVE’ SCOPE=SPFILE;
SQL> STARTUP FORCE
Hinweis: Die Einstellung EXCLUSIVE gibt Ihnen das höchste Maß an Sicherheit. Achten Sie zusätzlich auf die Einstellung des Parameters SQLNET.AUTHENTICATION_SERVICES in der Datei sqlnet.ora und auf die Zugehörigkeit des BS-Benutzers in der BS-Gruppe ORA_DBA (NT) bzw. DBA (Unix). Dadurch wird die lokale Anmeldung als SYSDBA wesentlich beeinflusst.
Die folgende Tabelle stellt die verschiedenen Kombinationsmöglichkeiten der Parameter bei der SYSDBA-/ SYSOPER-Anmeldung dar (unter Windows und TCP/IP):
| REMOTE_LOGIN_ PASSWORDFILE | SQLNET.AUTHENTICATION_SERVICES | Anmeldung erfolgt | |
| NTS | NONE | ||
| EXCLUSIVE | nur gültige <user/pwd>-Kombination zulässig | nur gültige <user/pwd>-Kombination zulässig | REMOTE |
| falls Benutzer in ORA_DBA: CONN / AS SYSDBA möglich falls Benutzer nicht in ORA_DBA: nur gültige <user/pwd>-Kombination zulässig nur gültige <user/pwd>-Kombination zulässig |
nur gültige <user/pwd>-Kombination zulässig | LOKAL | |
| NONE | keine Anmeldung möglich | keine Anmeldung möglich | REMOTE |
| falls Benutzer in ORA_DBA: CONN / AS SYSDBA möglich falls Benutzer nicht in ORA_DBA: keine Anmeldung möglich |
keine Anmeldung möglich | LOKAL | |
Hinzufügen weiterer Benutzer zur Passwort-Datei
Wird einem Benutzer explizit die SYSDBA- oder SYSOPER-Berechtigung übertragen, wird dieser Benutzer mit seinem verschlüsselten Passwort in die Passwort-Datei aufgenommen. Die ist jedoch nur für die Einstellung REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE möglich.
Beispiel:
SQL> GRANT sysdba TO scott;
Alle Benutzer mit entsprechender Berechtigung erscheinen in der View V$PWFILE_USERS:
SQL> SELECT * FROM v$pwfile_users;
USERNAME SYSDBA SYSOPER
-------- ------ -------
SYS TRUE TRUE
SCOTT TRUE FALSE
11g:
USERNAME SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS TRUE TRUE FALSE
SCOTT TRUE FALSE FALSE
Wir hoffen, dass sich das Rätsel um die Passwort-Datei und mögliche Einstellungen des REMOTE_LOGIN_PASSWORDFILE-Parameters nun weitestgehend gelöst hat.
Bitte nehmen Sie mich in den Verteiler der monatlichen Tipps & Tricks auf.