Mam trudną sytuację na jednym z naszych serwerów. Mam aplikację ASP.NET MVC 3, która musi połączyć się z bazą danych Oracle 12c. Czyni to za pomocą następującego ciągu połączenia:Oracle.ManagedDataAccess i ORA-01017: nieprawidłowa nazwa użytkownika/hasło; Odmowa logowania
User ID=myuserid;Password=mypass;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=<IP ADDRESS>)(PORT = 1521)))(CONNECT_DATA=(SERVICE_NAME=PDB1)));
Używam również Oracle Oracle.ManagedDataAccess, wersja 4.121.1.0. Każda próba połączenia powoduje następujący błąd:
ORA-01017: invalid username/password; logon denied
Mogę połączyć się pomyślnie na moim komputerze z powyższymi poświadczeniami. Mam ten sam kod na innym serwerze, ale przy użyciu starszej, niezarządzanej wersji biblioteki i mogę połączyć się pomyślnie z wyżej wymienionymi poświadczeniami. Jednak serwer, na którym chciałbym uruchomić mój kod, nie powiedzie się za każdym razem przy użyciu tych samych poświadczeń, które umożliwiają pomyślne połączenia na różnych serwerach.
Na serwerze, która nie mogę:
- połączyć poprzez SQLPLUS
- hit bazy danych z tnsping
- stworzyć system DSN ustanowić połączenie ODBC
mam sprawdził TNSNAMES.ORA we wszystkich lokalizacjach i wydaje się, że są poprawne.
Po naciśnięciu zbyt wiele razy bazy danych konto zostało zablokowane, co oznacza, że faktycznie trafiłem do bazy danych i że baza danych nie podobała się przedstawionym danym. Sprawdziłem aplikacje, które zostały pomyślnie połączone, a także nie udało się z błędem wskazującym, że konto zostało zablokowane. Odblokowanie konta spowodowało pomyślne nawiązanie połączenia przez te aplikacje z wyjątkiem serwera, z którym mam problemy.
Jestem na końcu mojego dowcipu.
Czy ktoś ma jakieś inne sugestie, co może powodować ten problem?
EDIT:
zainstalowałem WireShark na moim komputerze lokalnym i na serwerze naruszającego. Przechwyciłem komunikację między moim komputerem a bazą danych, a także nieprawidłowym serwerem i bazą danych. Okazało się, że mój pulpit przekazane hasło:
0080 35 42 31 41 43 34 30 00 01 01 01 0d 0d 41 55 54 5B1AC40......AUT
0090 48 5f 50 41 53 53 57 4f 52 44 01 40 40 43 30 36 [email protected]@C06
00a0 37 39 42 31 31 42 46 36 42 41 43 44 39 30 38 44 79B11BF6BACD908D
00b0 37 39 34 34 31 31 46 34 32 33 30 42 34 36 44 36 794411F4230B46D6
00c0 35 36 36 33 31 42 45 39 39 41 36 43 36 37 42 44 56631BE99A6C67BD
00d0 43 33 35 42 42 44 36 44 42 45 37 34 36 00 01 0d C35BBD6DBE746...
natomiast z serwerem, z którym mam problemy, nie zrobił (lub przynajmniej, że to założenie):
0080 39 33 39 37 32 33 46 00 01 01 01 0d 0d 41 55 54 939723F......AUT
0090 48 5f 50 41 53 53 57 4f 52 44 01 40 40 00 00 00 [email protected]@...
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 0d ................
Czy ktoś wie o bezpieczeństwo/konfiguracja, która uniemożliwiłaby przesyłanie haseł, nawet jeśli są one obecne w łańcuchu połączenia?
Strzał w ciemności być może: doceniam, że nie chcesz dzielić się z nami nazwą użytkownika i hasłem, ale czy możliwe byłoby przynajmniej udostępnienie nam jakichś nie alfanumerycznych znaków, których używają, jeśli w ogóle? –
Wszystkie są standardowymi znakami alfabetu (d, g, c, m, n, e). Wszystkie są małymi literami. Bez cyfr. Wydaje mi się, że możesz mieć na myśli problemy z zalogowaniem się do oracle, gdzie nazwa użytkownika i/lub hasło mają specjalne znaki, takie jak znak "e" ze znakiem diakrytycznym. W tym momencie posiadanie czegoś prostego byłoby posłaniem Boga. :-) – DerHaifisch
Właściwie, myślałem więcej o symbolach, takich jak ':' lub '?'. Jeśli Twoja nazwa użytkownika i hasło zawierają tylko małe litery, wszystko, co mogę zrobić, to życzyć ci szczęścia. Przepraszam! –