Ändern des Kennworts mit Oracle SQL Developer

139

Viele meiner Benutzer verwenden SQLPlus nicht. Ich kann ihnen keinen anderen Benutzer geben. Wir verfallen Passwörter alle 60 Tage.

Ich kann den SQLPlus-Befehl "password" nicht in SQL Developer zum Laufen bringen.

  1. Wenn ich auf "Aus" drücke, wird ein ungültiger Befehlsfehler angezeigt
  2. Wenn ich auf Skript ausführen drücke, passiert nichts.

Ich möchte ihnen kein Paket schreiben, um ihre Passwörter zu ändern, da wir viele Datenbanken haben. Habe ich eine bessere Option?

Bob
quelle
4
Sie können ein abgelaufenes Kennwort in SQL Developer nicht über den SQL-Befehl ändern. Es wird im JDBC-Stack nicht unterstützt. Dazu benötigen Sie die OCI-Bibliotheken. SQL-Entwickler haben die Möglichkeit, das Kennwort über den OCI-Stack zurückzusetzen und abzulaufen, wenn es korrekt installiert wurde. Siehe meine Antwort für alle Details.
Frobbit
Sie können dies mit SQL Developer 4.1.0.17 tun. Siehe meine Antwort unten.
Fuzzy-Analyse

Antworten:

189

Die korrekte Syntax zum Aktualisieren des Kennworts mit SQL Developer lautet:

alter user user_name identified by new_password replace old_password ;;

Weitere Optionen für diesen Befehl können Sie hier überprüfen: ALTER USER-Oracle DOCS

Americo Savinon
quelle
29
Möglicherweise müssen Sie die Kennwörter auch in doppelte Anführungszeichen setzen, um Sonderzeichen im Kennwort zu vermeiden. Zum Beispiel alter user __user_name__ identified by "newp@ss!!!" replace "oldp@ss!!!"Weitere Informationen unter asktom.oracle.com/pls/asktom/…
Bryant Bowman
6
Wenn Ihr pwd abgelaufen ist, haben Sie viel Glück beim Anmelden, um dies auszuführen. Antworten Eine Frage, aber nicht DIE Frage.
Ben George
105

In einem SQL-Arbeitsblatt:

  • Geben Sie "Passwort" ein (ohne Anführungszeichen)

  • Markieren Sie, drücken Sie CTRL+ ENTER.

  • Der Bildschirm zum Ändern des Passworts wird angezeigt.

Niall
quelle
4
Sie können auch "Passwort Someusername"
Anna
3
Ich nehme an, Sie meinen die Aktion "Run-Anweisung". Die Standardverknüpfung scheint Strg + Eingabetaste zu sein .
Álvaro González
70

SQL Developer verfügt über eine integrierte Option zum Zurücksetzen des Kennworts, die möglicherweise für Ihre Situation geeignet ist. Außerdem muss der Arbeitsstation Oracle Instant Client hinzugefügt werden. Wenn sich der Instant Client beim Start des SQL-Entwicklers im Pfad befindet, wird die folgende Option aktiviert:

SQL Developer: Dropdown-Menü mit der Option zum Zurücksetzen des Kennworts

Oracle Instant Client benötigt für die Installation keine Administratorrechte, sondern nur die Möglichkeit, in ein Verzeichnis zu schreiben und dieses Verzeichnis dem Benutzerpfad hinzuzufügen. Die meisten Benutzer haben die Berechtigungen dazu.

Fazit: So verwenden Sie das Kennwort zum Zurücksetzen in Oracle SQL Developer:

  1. Sie müssen den Oracle Instant Client in ein Verzeichnis entpacken
  2. Sie müssen das Oracle Instant Client-Verzeichnis zum Benutzerpfad hinzufügen
  3. Anschließend müssen Sie Oracle SQL Developer neu starten

An dieser Stelle können Sie mit der rechten Maustaste auf eine Datenquelle klicken und Ihr Passwort zurücksetzen.

Eine vollständige Anleitung finden Sie unter http://www.thatjeffsmith.com/archive/2012/11/resetting-your-oracle-user-password-with-sql-developer/

Siehe auch den Kommentar in den Oracle-Dokumenten: http://docs.oracle.com/cd/E35137_01/appdev.32/e35117/dialogs.htm#RPTUG41808

Eine alternative Konfiguration, mit der SQL Developer (getestet in Version 4.0.1) den Instant Client unter OS X erkennt und verwendet, ist:

  1. Legen Sie den Pfad zu Instant Client unter Einstellungen -> Datenbank -> Erweitert -> Oracle Client verwenden fest
  2. Stellen Sie sicher, dass der Instanzclient erfolgreich geladen werden kann, indem Sie im Dialogfeld "Einstellungen" die Optionen "Konfigurieren ... -> Testen ..." verwenden
  3. (OS X) Beziehen Sie sich auf diese Frage , um Probleme im Zusammenhang mit der Umgebungsvariablen DYLD_LIBRARY_PATH zu beheben. Ich habe den folgenden Befehl verwendet und dann SQL Developer neu gestartet, um die Änderung zu übernehmen:

    $ launchctl setenv DYLD_LIBRARY_PATH / path / to / oracle / instantclient_11_2

Frobbit
quelle
1
Nicht für alle Benutzer verfügbar 80 (
Keng
hmmm, scheint bei mir nicht zu funktionieren. Ich frage mich, ob das Aktualisieren des PATH wirklich alles ist, was Sie auf einem Mac tun müssen.
Fudo
Ich benutze einen Mac zu Hause, aber einen Windows-PC bei der Arbeit. Wir wechseln bald zu Macs. Wenn ich die Details finde, werde ich sie veröffentlichen.
Frobbit
1
Google ist sehr hilfreich :-) damit habe ich gefunden: oracle.com/technetwork/topics/linuxx86-64soft-092277.html was möglicherweise abgestanden ist. Um es erneut zu googeln, verwenden Sie goo.gl/kU5ZdM
Frobbit
1
Vielen Dank, es hat unter Windows 7 64bit funktioniert. Ich musste jedoch einen zusätzlichen Schritt ausführen (dies entspricht dem ersten Schritt in der obigen OS X-Konfiguration), da sonst die Option "Kennwort zurücksetzen" abgeblendet bleibt. 4. Legen Sie den Pfad zu Instant Client in den Einstellungen -> Datenbank -> Erweitert -> Oracle Client verwenden
marciowerner
24

Ihre Benutzer können ihre Kennwörter weiterhin ändern, indem sie " Nur Benutzer ändern. Ihr Benutzername wird durch ein neues Kennwort identifiziert". Sie müssen nicht über das ALTER USER-Privileg verfügen, um ihr eigenes Passwort zu ändern.

dpbradley
quelle
16

Abhängig von den Administratoreinstellungen müssen Sie möglicherweise Ihr altes Kennwort mit der Option REPLACE angeben

alter user <username> identified by <newpassword> replace <oldpassword> 
Gerry Gurevich
quelle
Können neues Passwort und altes Passwort identisch sein?
Haris Mehmood
2
Diese Antwort ist falsch. neues Passwort und altes Passwort werden transponiert. Verwenden Sie stattdessen stackoverflow.com/a/10809140/643483
Aaron Kurtzhals
1
@AaronKurtzhals Die Antwort, auf die Sie verweisen, sagt dasselbe wie meine Antwort. Verweisen Sie hier auf die Oracle-Dokumente: docs.oracle.com/cd/B19306_01/server.102/b14200/…
Gerry Gurevich
Die Hauptsache, die hinzugefügt werden muss (was @pgs in seiner Antwort auf dieselbe Frage getan hat), ist, dass Sie möglicherweise Anführungszeichen um die Kennwörter setzen müssen, wenn sie Sonderzeichen enthalten.
Gerry Gurevich
10

Um es ein wenig klar zu machen:

Wenn der Benutzername: abcdef und das alte Passwort: a123b456, neues Passwort: m987n654

Benutzer ändern abcdef identifiziert durch m987n654 ersetzen a123b456 ;

Spazzo
quelle
9

Mir ist klar, dass es viele Antworten gibt, aber ich habe eine Lösung gefunden, die für manche hilfreich sein kann. Ich bin auf das gleiche Problem gestoßen, ich führe Oracle SQL Develop auf meinem lokalen Computer aus und ich habe eine Reihe von Benutzern. Ich erinnere mich zufällig an das Passwort eines meiner Benutzer und habe es verwendet, um das Passwort anderer Benutzer zurückzusetzen.

Schritte:

  1. Stellen Sie mit einem gültigen Benutzer und Kennwort eine Verbindung zu einer Datenbank her. In meinem Fall sind alle meine Benutzer mit Ausnahme von "System" abgelaufen, und ich erinnere mich an dieses Kennwort

  2. Suchen Sie den Knoten "Other_users" in der Baumstruktur, wie in der Abbildung unten dargestellt

Geben Sie hier die Bildbeschreibung ein

3. Suchen Sie im Baum "Andere_Benutzer" Ihre Benutzer, deren Kennwort Sie zurücksetzen möchten, und klicken Sie mit der rechten Maustaste auf die Notiz und wählen Sie "Benutzer bearbeiten".

Geben Sie hier die Bildbeschreibung ein

4.Füllen Sie das neue Passwort im Dialogfeld Benutzer bearbeiten aus und klicken Sie auf "Übernehmen". Stellen Sie sicher, dass Sie das Kontrollkästchen "Passwort abgelaufen (Benutzer muss das nächste Login ändern)" deaktiviert haben.

Geben Sie hier die Bildbeschreibung ein

Und das hat bei mir funktioniert. Es ist nicht so gut wie andere Lösungen, da Sie sich bei mindestens einem Konto anmelden müssen, aber es funktioniert.

Saad A.
quelle
7

Ich habe bestätigt, dass dies in SQL Developer 3.0.04 funktioniert. Unsere Passwörter müssen ein Sonderzeichen haben, daher wird in unserem Fall die Zeichenfolge in doppelten Anführungszeichen benötigt. Dies funktioniert natürlich nur, wenn das Passwort noch nicht abgelaufen ist und Sie gerade angemeldet sind.

ALTER USER MYUSERID
IDENTIFIED BY "new#password"
REPLACE "old#password"
pgs
quelle
3
Diese Antwort ist falsch. neues Passwort und altes Passwort werden transponiert. Verwenden Sie stattdessen stackoverflow.com/a/10809140/643483
Aaron Kurtzhals
3

Versuchen Sie diese Lösung, wenn die Option Kennwort zurücksetzen (von SQL Developer) nicht funktioniert hat :

Schritt 1: Öffnen Sie Run SQL Command Line (über das Startmenü, das mit dem SQL Developer-Installationspaket geliefert wird).

Schritt 2: Führen Sie die folgenden Befehle aus:

Geben Sie hier die Bildbeschreibung ein

Hinweis: Wenn das Passwort bereits abgelaufen ist, wird die Changing password for <user>Option automatisch aktiviert.

Löwe
quelle
2

Die integrierte Option zum Zurücksetzen des Kennworts funktioniert möglicherweise nicht für Benutzer. In diesem Fall kann das Kennwort mithilfe der folgenden SQL-Anweisung zurückgesetzt werden:

ALTER user "user" identified by "NewPassword" replace "OldPassword";
user2689487
quelle
1

Sie finden den Benutzer in der Tabelle DBA_USERS wie

SELECT profile
FROM dba_users
WHERE username = 'MacsP'

Gehen Sie nun zum System / System (Administrator) und verwenden Sie die Abfrage

ALTER USER PRATEEK
IDENTIFIED BY "new_password"
REPLACE "old_password"

Um den Kontostatus zu überprüfen, gehen Sie einfach durch

SELECT * FROM DBA_USERS.

und Sie können den Status Ihres Benutzers sehen.


quelle
1

Sie können dies jetzt in SQL Developer 4.1.0.17 tun , ohne dass PL / SQL erforderlich ist, vorausgesetzt, Sie haben ein anderes Konto mit Administratorrechten:

  1. Erstellen Sie in SQL Developer 4.1.0.17 eine Verbindung zur Datenbank mit einem alternativen Administrator
  2. Erweitern Sie den Abschnitt "Andere Benutzer", sobald die Verbindung hergestellt ist, und klicken Sie mit der rechten Maustaste auf den Benutzer, dessen Kennwort abgelaufen ist. Wählen Sie "Benutzer bearbeiten".
  3. Deaktivieren Sie das Kontrollkästchen "Passwort abgelaufen ...", geben Sie ein neues Passwort für den Benutzer ein und klicken Sie auf "Speichern".
  4. Job erledigt! Sie können testen, indem Sie eine Verbindung mit dem Benutzer herstellen, dessen Kennwort abgelaufen ist, um zu bestätigen, dass es jetzt wieder gültig ist.
Fuzzy-Analyse
quelle
1

Es gibt eine andere Möglichkeit, das Passwort über die Eingabeaufforderung zurückzusetzen ...

1) Wechseln Sie im STARTMENÜ zum Oracle-Datenbankordner (in meinem Fall Oracle Database 11g Express Edition).

2) Klicken Sie in diesem Ordner auf "SQL-Befehlszeile ausführen".

Oracle-Datenbankordner-Image

3) Geben Sie " connect username / password " ein (Ihr Benutzername und Ihr altes Passwort ohne Anführungszeichen).

4) Die angezeigte Meldung lautet ...

FEHLER: ORA-28001: Das Passwort ist abgelaufen

Passwort für hr ändern

-> Neues Passwort:

Geben Sie den Benutzernamen und das Passwort ein

5) Geben Sie das neue Passwort ein

6) Geben Sie das neue Passwort erneut ein

7) Die angezeigte Nachricht ist ...

Passwort geändert Verbunden.

SQL>

8) GEHE ZU SQL Entwickler -> gib das neue Passwort ein -> verbunden

Suchitra Phadke
quelle
Während das OP 5 Jahre nach der Beantwortung der Frage noch aktiv ist, ist die Antwort möglicherweise nicht mehr relevant.
Erdbeere
@Strawberry wenn es die Frage beantwortet, warum nicht? !!
Muhammed Refaat
1

Ein Hinweis für Personen, die möglicherweise nicht über das festgelegte Kennwort für sysdba oder sys verfügen und regelmäßig einen Drittanbieter-Client verwenden. Hier finden Sie einige Informationen zum Anmelden bei der Befehlszeile sqlplus ohne ein Kennwort, das mir geholfen hat. Ich benutze übrigens Fedora 21.

locate sqlplus

In meinem Fall befindet sich sqlplus hier:

/u01/app/oracle/product/11.2.0/xe/config/scripts/sqlplus.sh

Jetzt renn

cd /u01/app/oracle/product/11.2.0/xe/config/scripts
./sqlplus.sh / as sysdba

Jetzt müssen Sie mit Ihren alten Anmeldeinformationen eine Verbindung zur Datenbank herstellen. Die von Oracle bereitgestellte Vorlage finden Sie in Ihrer Ausgabe:

Use "connect username/password@XE" to connect to the database.

In meinem Fall habe ich den Benutzer "oracle" mit dem Passwort "oracle", so dass meine Eingabe so aussieht

connect oracle/oracle@XE

Getan. Geben Sie nun Ihr neues Passwort zweimal ein. Wenn Sie dann nicht mehr möchten, dass Ihr Passwort abläuft, können Sie es ausführen

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
Sorokin Andrey
quelle