ORA-01017 jest jednym z najczęstszych błędów występujących podczas łączenia się z bazą danych Oracle.
Oto, co dokumentacja mówi o tym błędzie
Oto lista kontrolna do uruchomienia w celu rozwiązania problemu ORA-01017:nieprawidłowa nazwa użytkownika/hasło
(1)Główny problem z ORA-01017 błąd to nieprawidłowa kombinacja identyfikatora użytkownika i hasła. Musisz się upewnić, że wpisujesz właściwe hasło
Jeśli system docelowy to 11g, hasło może uwzględniać wielkość liter
Możesz sprawdzić parametr w systemie
SQL> SHOW PARAMETER SEC_CASE_SENSITIVE_LOGON NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ sec_case_sensitive_logon boolean TRUE SQL>
Gdy powyższy parametr jest ustawiony na true, rozróżnianie wielkości liter jest włączone, możesz go wyłączyć i ponownie sprawdzić połączenie
SQL> ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE; System altered.
I spróbuj się połączyć. Jeśli to działa , to wiesz, że problemem jest rozróżnianie wielkości liter, możesz zmienić hasło użytkownika i zapisać je gdzieś, aby zapamiętać hasło z rozróżnianiem wielkości liter, a następnie ponownie włączyć parametr systemowy
SQL> ALTER user test identified by TEST1; User altered. SQL> ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = TRUE; System altered.
(2) Możliwe, że identyfikator użytkownika jest nieprawidłowy dla systemu docelowego. Sprawdź, czy identyfikator użytkownika istnieje jako kolumna nazwy użytkownika w widoku dba_users.
select username from dba_users where username ='<user name>';
(3) Sprawdź parametr środowiskowy $ORACLE_SID lub $TWO_TASK. Jeśli Twój $ORACLE_SID jest ustawiony na niewłaściwą bazę danych, możesz otrzymać ORA-01017 błąd, ponieważ łączysz się z niewłaściwą bazą danych Oracle.
(4) Sprawdź plik tnsnames.ora, aby upewnić się, że usługa TNS wskazuje właściwą bazę danych. Możesz użyć polecenia tnsping, aby to również sprawdzić
TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 22-JUNE-2016 23:01:06 Copyright (c) 1997, 2014, Oracle. All rights reserved. Used parameter files: /oracle/product/11.2.0.4/network/admin/sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = techgoeasy.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = TEST))) OK (0 msec)
(5) Możesz również otrzymać błąd ORA-01017 w środowisku ochrony danych i środowisku gotowości
Upewnij się, że hasło użytkownika SYS jest takie samo po stronie głównej i po stronie gotowości. Utwórz plik hasła Oracle za pomocą orapwd z tym samym hasłem zarówno po stronie podstawowej, jak i po stronie gotowości
W przypadku bazy danych Oracle 12c, w przypadku podstawowej bazy danych RAC, musimy mieć plik z hasłami we wspólnej lokalizacji
orapwd file='+DATA/TEST/PASSWORDFILE/oraTEST' entries=10 dbuniquename=TEST password=<sys pass>
(6) Czasami może być inny powód błędu, a ORA-01017 jest mylącym błędem.
Możesz prześledzić stos wywołań za pomocą polecenia truss lub trace
Linux: strace -o /tmp/strace_user.output -cfT sqlplus Scott/[email protected] AIX, Solaris: truss -fea -o /tmp/truss_user.output sqlplus scott/[email protected] HP-UX: tusc -afpo /tmp/tusc_user.output -aef sqlplus scott/[email protected]
(7) Ten błąd można również napotkać podczas aktywnego kopiowania RMAN
Cause The SYS password is not the same between the original/source database and auxiliary/duplicate database. SOLUTION Perform the following steps: 1) Copy the password file from the original/source database to the auxiliary/duplicate database. 2) Run the following OS command "cksum" to check whether the password files are the same on both the original/source database and auxiliary/duplicate database. cksum {password_file_name}
(8) Hasła bez rozróżniania wielkości liter i nieprawidłowa nazwa użytkownika ORA-1017 lubhasło
Domyślnym protokołem uwierzytelniania Oracle Database 12c w wersji 2 (12.2) jest 12 (tryb wyłączności). Ten protokół wymaga do uwierzytelniania haseł z rozróżnianiem wielkości liter. Sprawdź swoje opcje, jeśli masz wcześniejsze wersje haseł.
Począwszy od Oracle Database 12c wersja 2 (12.2), domyślna wartość parametru SQLNET.ORA ALLOWED_LOGON_VERSION_SERVER jest zmieniana na 12. Ten parametr odnosi się do protokołu uwierzytelniania logowania używanego na serwerze, a nie do wersji Oracle Database.
Domyślnie Oracle nie obsługuje już uwierzytelniania opartego na hasłach bez rozróżniania wielkości liter; dozwolone są tylko nowe wersje hasła (11G i 12C). Wersja hasła 10G bez rozróżniania wielkości liter nie jest już generowana.
Jeśli masz konta wymagające wersji hasła 10G, aby zapobiec blokowaniu kont korzystających z tej wersji hasła z bazy danych, możesz zmienić tryb wyłączności na bardziej liberalny protokół uwierzytelniania.
Wersję hasła można sprawdzić jako
select username,password_version from dba_users;
Zaloguj się jako administrator.
Edytuj plik SQLNET.ORA, aby zmienić ustawienie SQLNET.ALLOWED_LOGON_VERSION_SERVER z domyślnego 12 na 11 lub mniej. Na przykład:
SQLNET.ALLOWED_LOGON_VERSION_SERVER=11
(9) ORA-01017 przy użyciu „sqlplus / jako sysdba”
Może się to zdarzyć, jeśli użytkownik systemu operacyjnego, w którym próbujesz użyć powyższego polecenia, nie jest członkiem grupy dba.
Upewnij się, że użytkownik systemu operacyjnego należy do grupy DBA.
Sprawdź także sqlnet.ora. Jeśli masz sqlnet.authentication_services=none, możesz również otrzymać ten błąd
Mam nadzieję, że podoba Ci się treść na ORA-01017 nieprawidłowa nazwa użytkownika/hasło
Powiązane artykuły
ORA-00911 :Ten post dotyczy typowych przyczyn ORA-00911:nieprawidłowy znak w Oracle z przykładami i rozwiązaniami, które pomogą Ci ukończyć zadanie.
ORA-29913 :wskazówki dotyczące rozwiązywania problemów z błędami ORA, takimi jak ora- 29913:błąd podczas wykonywania objaśnienia odciexttableopen, ora-29913:błąd podczas wykonywania objaśnienia odciexttablefetch
ORA-00257 :Dowiedz się, jak rozwiązać problem z błędem archiwizatora ORA-00257. Podłącz błąd tylko wewnętrzny.Różne rozwiązania i przykład podane krok po kroku.
zmień użytkownika identyfikowanego przez wartości :Dowiedz się o haśle Oracle , przechowywanym w bazie danych, algorytmie , jak zalogować się jako użytkownik bez zmiany hasła Oracle za pomocą opcji alter user identyfikowane przez wartości
ORA-28000 :ORA-28000 konto jest zablokowane jest bardzo częstym błędem. Sprawdź ten post, aby dowiedzieć się, jak rozwiązać ten problem krok po kroku bez żadnych problemów.
ORA-00904 :Ten post zawiera opis i możliwe rozwiązania ORA-00904:nieprawidłowy identyfikator. Dostępne są również wskazówki dotyczące rozwiązywania problemów
ORA -28002 :Ten post w jak rozwiązać ORA-28002 hasło wygaśnie. Co można zrobić, aby całkowicie tego uniknąć, tworząc nowy profil
Dokumentacja Oracle 12.2