Zmiana hasła za pomocą Oracle SQL Developer


139

Wielu moich użytkowników nie używa SQLPlus. Nie mogę dać im zmiany użytkownika. Hasła tracą ważność co 60 dni.

Nie mogę uzyskać polecenia „hasło” polecenia SQLPlus do pracy w programie SQL Developer.

  1. Kiedy uruchamiam, pojawia się błąd nieprawidłowego polecenia
  2. Kiedy uruchamiam skrypt, nic się nie dzieje.

Nie chcę im pisać pakietu do zmiany haseł, ponieważ mamy wiele baz danych. Czy mam lepszą opcję?


4
Nie można zmienić wygasłego hasła w programie SQL Developer za pomocą polecenia SQL. Nie jest obsługiwany w stosie JDBC. Potrzebujesz do tego bibliotek OCI. Programista SQL ma możliwość zresetowania i wygasłego hasła za pośrednictwem stosu OCI, jeśli zostało ono poprawnie zainstalowane. Zobacz moją odpowiedź, aby uzyskać szczegółowe informacje.
Frobbit

Możesz to zrobić za pomocą SQL Developer 4.1.0.17. Zobacz moją odpowiedź poniżej.
Analiza rozmyta

Odpowiedzi:


189

Prawidłowa składnia aktualizacji hasła za pomocą SQL Developer to:

alter user user_name identified by new_password replace old_password ;

Możesz sprawdzić więcej opcji dla tego polecenia tutaj: ALTER USER-Oracle DOCS


29
Ponadto może być konieczne zawinięcie hasła (a) w podwójne cudzysłowy, aby uniknąć jakichkolwiek znaków specjalnych w haśle. Na przykład alter user __user_name__ identified by "newp@ss!!!" replace "oldp@ss!!!"więcej informacji na asktom.oracle.com/pls/asktom/ ...
Bryant Bowman

6
Jeśli twoje pwd wygasło, powodzenia, logując się, aby to uruchomić. Odpowiedzi Pytanie, ale nie pytanie.
Ben George

105

W arkuszu SQL:

  • Wpisz „hasło” (bez cudzysłowów)

  • Podświetl, naciśnij CTRL+ ENTER.

  • Pojawi się ekran zmiany hasła.


4
Możesz także wpisać hasło „nazwa_użytkownika”
Anna,

3
Przypuszczam, że masz na myśli akcję „Uruchom instrukcję”. Domyślnym skrótem wydaje się być Ctrl + Enter .
Álvaro González

70

SQL Developer ma wbudowaną opcję resetowania hasła, która może działać w Twojej sytuacji. Wymaga również dodania Oracle Instant Client do stacji roboczej. Gdy klient błyskawiczny znajduje się na ścieżce, gdy programista SQL uruchamia się, dostępna jest następująca opcja:

SQL Developer: rozwijane menu pokazujące opcję resetowania hasła

Oracle Instant Client nie wymaga uprawnień administratora do instalacji, wystarczy możliwość zapisu w katalogu i dodania tego katalogu do ścieżki użytkownika. Większość użytkowników ma do tego uprawnienia.

Podsumowanie: Aby użyć Resetuj hasło w Oracle SQL Developer:

  1. Musisz rozpakować Oracle Instant Client w katalogu
  2. Musisz dodać katalog Oracle Instant Client do ścieżki użytkowników
  3. Następnie należy ponownie uruchomić Oracle SQL Developer

W tym momencie możesz kliknąć prawym przyciskiem myszy źródło danych i zresetować hasło.

Zobacz http://www.thatjeffsmith.com/archive/2012/11/resetting-your-oracle-user-password-with-sql-developer/, aby uzyskać pełne omówienie

Zobacz także komentarz w dokumentacji oracle: http://docs.oracle.com/cd/E35137_01/appdev.32/e35117/dialogs.htm#RPTUG41808

Alternatywna konfiguracja umożliwiająca programowi SQL Developer (przetestowana w wersji 4.0.1) rozpoznawanie i używanie Instant Client w systemie OS X to:

  1. Ustaw ścieżkę do Instant Client w Preferencjach -> Baza danych -> Zaawansowane -> Użyj klienta Oracle
  2. Sprawdź, czy klient instancji może zostać pomyślnie załadowany za pomocą opcji Konfiguruj ... -> Testuj ... w oknie dialogowym preferencji
  3. (OS X) Sprawdź to pytanie, aby rozwiązać problemy związane ze zmienną środowiskową DYLD_LIBRARY_PATH. Użyłem następującego polecenia, a następnie ponownie uruchomiłem SQL Developer, aby odebrać zmianę:

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


1
Niedostępne dla wszystkich użytkowników 80 (
Keng

hmmm, wydaje mi się, że nie działa. Zastanawiam się, czy aktualizacja PATH to naprawdę wszystko, co musisz zrobić na komputerze Mac.
fudo

Używam komputera Mac w domu, ale komputera z systemem Windows w pracy. Wkrótce przechodzimy na macs. Jeśli znajdę szczegóły, opublikuję je.
Frobbit

1
Google jest bardzo pomocny :-) z nim znalazłem: oracle.com/technetwork/topics/linuxx86-64soft-092277.html, który może się zestarzeć. Aby go ponownie wygooglować,
Frobbit

1
Dziękuję, działał na Windows 7 64bit. Musiałem jednak przejść dodatkowy krok (taki sam jak pierwszy krok w konfiguracji OS X powyżej), w przeciwnym razie opcja `` resetowania hasła '' pozostanie wyszarzona. 4. Ustaw ścieżkę do Instant Client w Preferencjach -> Baza danych -> Zaawansowane -> Użyj klienta Oracle
marciowerner

24

Twoi użytkownicy mogą nadal zmieniać swoje hasła przez „ zmień tylko użytkownikaNazwa ich użytkownika określona przez nowe hasło ”. Nie muszą mieć uprawnienia ALTER USER, aby zmienić własne hasło.


16

W zależności od ustawień administratora może być konieczne określenie starego hasła za pomocą opcji REPLACE

alter user <username> identified by <newpassword> replace <oldpassword> 

czy nowe hasło i stare hasło mogą być takie same?
Haris Mehmood

2
Ta odpowiedź jest błędna. transponowane są nowe hasło i stare hasło. Zamiast tego użyj stackoverflow.com/a/10809140/643483
Aaron Kurtzhals

1
@AaronKurtzhals Odpowiedź, do której się odnosisz, mówi to samo, co moja odpowiedź. Odwołaj się do dokumentów Oracle tutaj: docs.oracle.com/cd/B19306_01/server.102/b14200/…
Gerry Gurevich,

Najważniejszą rzeczą do dodania (co zostało zrobione przez @pgs w jego odpowiedzi na to samo pytanie) jest to, że może być konieczne umieszczenie cudzysłowów wokół haseł, jeśli zawierają one znaki specjalne.
Gerry Gurevich,

10

Aby to trochę wyjaśnić:

Jeśli nazwa użytkownika: abcdef i stare hasło: a123b456, nowe hasło: m987n654

zmień abcdef użytkownika zidentyfikowanego przez m987n654 zamień a123b456 ;


9

Zdaję sobie sprawę, że odpowiedzi jest wiele, ale znalazłem rozwiązanie, które może być pomocne dla niektórych. Napotkałem ten sam problem, używam programu Oracle sql Develop na moim komputerze lokalnym i mam grupę użytkowników. Tak się składa, że ​​pamiętam hasło jednego z moich użytkowników i użyłem go do zresetowania haseł innych użytkowników.

Kroki:

  1. połączyć się z bazą danych przy użyciu ważnego użytkownika i hasła, w moim przypadku wszyscy moi użytkownicy wygasli z wyjątkiem „systemu” i pamiętam to hasło

  2. znajdź węzeł „Other_users” w drzewie, tak jak pokazano na poniższej ilustracji

wprowadź opis obrazu tutaj

3. w drzewie „Inni_użytkownicy” znajdź użytkowników, dla których chcesz zresetować hasło, kliknij prawym przyciskiem myszy notatkę i wybierz „Edytuj użytkowników”

wprowadź opis obrazu tutaj

4. Wypełnij nowe hasło w oknie edycji użytkownika i kliknij „Zastosuj”. Upewnij się, że odznaczono opcję „Hasło wygasło (użytkownik musi zmienić następny login)”.

wprowadź opis obrazu tutaj

I to zadziałało dla mnie, nie jest tak dobre jak inne rozwiązanie, ponieważ musisz mieć możliwość zalogowania się na co najmniej jedno konto, ale działa.


7

Potwierdziłem, że to działa w SQL Developer 3.0.04. Nasze hasła muszą mieć znak specjalny, więc w naszym przypadku potrzebny jest łańcuch w cudzysłowie. Oczywiście działa to tylko wtedy, gdy hasło jeszcze nie wygasło i jesteś aktualnie zalogowany.

ALTER USER MYUSERID
IDENTIFIED BY "new#password"
REPLACE "old#password"

3
Ta odpowiedź jest błędna. transponowane są nowe hasło i stare hasło. Zamiast tego użyj stackoverflow.com/a/10809140/643483
Aaron Kurtzhals

3

Wypróbuj to rozwiązanie, jeśli opcja Resetuj hasło (programu SQL Developer) nie działa :

Krok 1: Otwórz Run SQL Command Line (z menu Start, które jest dostarczane z pakietem instalacyjnym SQL Developer)

Krok 2: Uruchom następujące polecenia:

wprowadź opis obrazu tutaj

Uwaga: jeśli hasło już wygasło, Changing password for <user>opcja pojawi się automatycznie.


2

Wbudowana opcja resetowania hasła może nie działać dla użytkownika. W takim przypadku hasło można zresetować za pomocą następującej instrukcji SQL:

ALTER user "user" identified by "NewPassword" replace "OldPassword";

1

możesz znaleźć użytkownika w tabeli DBA_USERS, takiej jak

SELECT profile
FROM dba_users
WHERE username = 'MacsP'

Teraz przejdź do sys / system (administrator) i użyj zapytania

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

Aby zweryfikować status konta, po prostu przejdź

SELECT * FROM DBA_USERS.

i możesz zobaczyć stan swojego użytkownika.


1

Możesz to teraz zrobić w SQL Developer 4.1.0.17 , bez PL / SQL, zakładając, że masz inne konto z uprawnieniami administratora:

  1. Utwórz połączenie z bazą danych w SQL Developer 4.1.0.17 z alternatywnym użytkownikiem administracyjnym
  2. Po nawiązaniu połączenia rozwiń sekcję „Inni użytkownicy” i kliknij prawym przyciskiem myszy użytkownika, którego hasło wygasło. Wybierz „Edytuj użytkownika”.
  3. Odznacz pole wyboru „Hasło wygasło ...”, wpisz nowe hasło użytkownika i kliknij „Zapisz”.
  4. Zadanie wykonane! Możesz przetestować, łącząc się z użytkownikiem, którego hasło wygasło, aby potwierdzić, że jest teraz ponownie ważne.

1

Istnieje inny sposób resetowania hasła za pomocą wiersza poleceń ...

1) Przejdź do folderu Oracle Database (w moim przypadku Oracle Database 11g Express Edition) w MENU START.

2) W tym folderze kliknij „Uruchom wiersz poleceń SQL”

Obraz folderu bazy danych Oracle

3) Wpiszpołącz nazwę użytkownika / hasło ” (swoją nazwę użytkownika i stare hasło bez cudzysłowów)

4) Wyświetlany komunikat to ...

BŁĄD: ORA-28001: hasło wygasło

Zmiana hasła na godz

-> Nowe hasło:

Wprowadź nazwę użytkownika, obraz hasła

5) Wpisz nowe hasło

6) Wpisz ponownie nowe hasło

7) Wyświetlany komunikat to ...

Hasło zostało zmienione Połączono.

SQL>

8) PRZEJDŹ DO PROGRAMISTY Sql -> wpisz nowe hasło -> połączono


Podczas gdy PO jest nadal aktywny, 5 lat po zadaniu pytania odpowiedź może już nie być odpowiednia.
Truskawka

@ Truskawka jeśli odpowiada na pytanie, czemu nie? !!
Muhammed Refaat

1

Jedna uwaga dla osób, które mogą nie mieć ustawionego hasła dla sysdba lub sys i regularnie korzystają z klienta zewnętrznego. Oto kilka informacji o logowaniu się do wiersza poleceń sqlplus bez hasła, które mi pomogły. Nawiasem mówiąc, używam fedory 21.

locate sqlplus

W moim przypadku sqlplus znajduje się tutaj:

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

A teraz biegnij

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

Teraz musisz połączyć się z bazą danych przy użyciu starych poświadczeń. W wynikach można znaleźć szablon dostarczony przez Oracle:

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

W moim przypadku mam użytkownika „oracle” z hasłem „oracle”, więc moje dane wejściowe wyglądają jak

connect oracle/oracle@XE

Gotowe. Teraz dwukrotnie wpisz nowe hasło. Następnie, jeśli nie chcesz, aby Twoje hasło wygasło, możesz uruchomić

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.