У меня сложная ситуация на одном из наших серверов. У меня есть приложение ASP.NET MVC 3, которому необходимо подключиться к базе данных Oracle 12c. Он делает это, используя следующую строку соединения:Oracle.ManagedDataAccess и ORA-01017: неверное имя пользователя/пароль; logon denied
User ID=myuserid;Password=mypass;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=<IP ADDRESS>)(PORT = 1521)))(CONNECT_DATA=(SERVICE_NAME=PDB1)));
Я также использую Oracle.ManagedDataAccess Oracle, версия 4.121.1.0. При каждой попытке подключения возникают следующие ошибки:
ORA-01017: invalid username/password; logon denied
Я могу успешно подключиться на своем рабочем столе с указанными выше полномочиями. У меня такой же код на другом сервере, но с использованием старой, не управляемой версии библиотеки, и она может успешно соединяться с вышеупомянутыми учетными данными. Тем не менее, сервер, на котором я хочу, чтобы мой код запускался с ошибкой каждый раз, используя те же учетные данные, которые позволяют успешные соединения на разных серверах.
На сервере, который не могу:
- подключить через SQLPLUS
- попал в базу данных с TNSPING
- Создание системы DSN для установления соединения ODBC
У меня есть проверили TNSNAMES.ORA во всех местах, и они выглядят правильно.
После того, как вы попали в базу данных слишком много раз, учетная запись фактически заблокировала, указывая на то, что я действительно попал в базу данных и что база данных не понравилась представленным учетным данным. Я проверил приложения, которые ранее были успешно подключены, и они также потерпели неудачу с ошибкой, указывающей, что учетная запись заблокирована. Разблокирование учетной записи привело к тому, что эти приложения успешно подключались, за исключением сервера, с которым у меня возникают проблемы.
Я нахожусь на своем остроумие.
Есть ли у кого-нибудь другие предложения относительно того, что может вызвать эту проблему?
EDIT:
Я установил WireShark на локальном компьютере и на сервере обижая. Я захватил связь между моим рабочим столом и базой данных, а также злоумышленным сервером и базой данных. Я обнаружил, что мой рабочий стол сообщаться пароль:
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...
тогда сервер, с которым у меня возникли проблемы, не (или, по крайней мере, это предположение):
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 ................
Кто-нибудь знает о безопасности/configuration, который предотвращает передачу паролей, даже если они присутствуют в строке соединения?
Выстрел в темноте, возможно: я ценю, что вы не захотите делиться с нами именем пользователя и паролем, но по крайней мере было бы возможно поделиться с нами, какие не буквенно-цифровые символы они используют, если они есть? –
Все стандартные, альфа-символы (d, g, c, m, n, e). Все строчные. Нет цифр. Я считаю, что вы можете ссылаться на некоторые проблемы, связанные с оракулом, где имя пользователя и/или пароль имеют специальные символы, такие как «e» с диакритической меткой. В этот момент, если бы что-то простое было, это было бы богом. :-) – DerHaifisch
На самом деле, я думал больше символов iabout, таких как ':' или '?'. Если ваше имя пользователя и пароль содержат только строчные буквы, я могу только пожелать вам удачи. Сожалею! –