|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
Есть приложение колл-центра, судя по вкомпилированным строкам, написанное очень давно на VisualBasic 6. После миграции пользователя на новый компьютер со старой Windows 7 на Windows 10 это приложение перестало авторизоваться на MS SQL 2008R2. Аутентификация нативная SQL. В логах СУБД: Login failed for user '...'. Reason: Password did not match that for the login provided. [CLIENT: ...] Error: 18456, Severity: 14, State: 8 Покопавшись во внутренностях приложения смог включить лог ADO: Date : 7/21/2021 Time : 02:21 PM Module : clsADO #1 Proc : GetNewConnection Section : Error Handler VB Error Number : VB Error Message : ADO Error Count : 1 ADO ErrorNumber : -2147217843 - {&80040E4D&} ADO Native Error : 18456 ADO SQL State : 42000 ADO Error Source : Microsoft OLE DB Provider for SQL Server ADO Description : Login failed for user '...'. ConnectionString : Provider=SQLOLEDB;Data Source=...;Initial Catalog=...;User ID=...; RecordSource : None Попытка сброса пароля на новый с произвольной длиной или создания тестового sysadmin пользователя дают те же результаты. В ODBC при переносе все сохранилось нетронутым. Может кто-то сталкивался с чем-то подобным. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 16:31 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
Allan Stark, Сталкивался. TLS 1.1 выпилили не так давно. Нужно переходить на нативный клиент. Никаких оледб. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 17:15 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
Relic Hunter, Т.е. установить нативный MS SQL клиент из поставки MS SQL Server и попробовать завести ODBC через него? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 17:20 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
Allan Stark, нужно менять строку подключения на Provider=SQLNCLI11.1 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 17:24 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
тынц авторПредыдущие поставщики Microsoft OLE DB для SQL Server (SQLOLEDB) и собственный клиент OLE DB для SQL Server (SQLNCLI) объявляются нерекомендуемыми для новых разработок. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 18:22 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
К сожалению не помогло. Установил предложенный Microsoft OLE DB для SQL Server, поменял в Computer\HKKU\...\Software\VB and VBA Program Settings\callcenter\UserInfo в ADOProvider с SQLOLEDB на SQLNCLI11.1, получаю ту же ошибку ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 21:25 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
Снова глянул в логи трассировки ADO и там так и осталась старая строка подключения: ConnectionString : Provider=SQLOLEDB... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 21:42 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
Посмотрел внутри exe-шника, там тоже есть "Provider=SQLOLEDB", очевидно, что скорее всего просто намертво вкомпилено :( ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 22:01 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
а может и пароль внутри exe вшит другой? State 8 - ошибка пароля и вроде как других трактовок в доках нету ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 00:03 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
andy st, Вряд ли там есть пароль, приложение запрашивает имя пользователя и пароль при запуске и в логах MS SQL потом они фигурируют. А вот такое есть (см. скриншот). Видимо придется HEX редактором пытаться патчить бинарник... Но может есть какой твик реестра чтобы попытаться обойти это дело? Может на уровне ODBC драйвера. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 00:26 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
Allan Stark, Сборные строки подключения патчить в exe - занятие очень интересное. Под каждый драйвер свои ключевые слова. воть Где-то Database, где-то Initial Catalog Где-то User ID, где-то UID А может прикладуха к паролю что-нить добавляет в процессе сборки строки.. Но всегда есть выход - запилить на hyper-v на том же компе с Win10 виртуалку на Win7, в которой всё "будет работать" и сделать ярлык :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 05:59 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
andy st Но всегда есть выход - запилить на hyper-v на том же компе с Win10 виртуалку на Win7, в которой всё "будет работать" и сделать ярлык :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 06:14 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
Allan Stark со старой Windows 7 на Windows 10 это приложение перестало авторизоваться на MS SQL 2008R2. Аутентификация нативная SQL. Что-то бред относительно OLEDB (которое сама мелкософт вновь признало каноничным, в противовес преданному анафеме нативному клиенту) кажется мне бредом. Сервер старый, приложение - старое. Новое только Win10. Вот Win10 и надо ковырять. 1. Любой другой клиент... ну... Excel - подключается через OLEDB? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 07:19 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
aleks222 Что-то бред относительно OLEDB (которое сама мелкософт вновь признало каноничным, в противовес преданному анафеме нативному клиенту) кажется мне бредом. Сервер старый, приложение - старое. Новое только Win10. Вот Win10 и надо ковырять. 1. Любой другой клиент... ну... Excel - подключается через OLEDB? Может это и бред, но OLEDB " бывают разные: чёрные, белые, красные, но всем одинаково хочется на что-нибудь заморочиться ". Нативные клиенты - это тоже OLEDB. Уже написали, что " Предыдущие поставщики Microsoft OLE DB для SQL Server (SQLOLEDB ) и собственный клиент OLE DB для SQL Server (SQLNCLI) объявляются нерекомендуемыми для новых разработок". Вот этот SQLOLEDB , разработанный для SQL 2000 и включенный в качестве компонента в Windows XP, хотя он все еще присутствует в новых ОС, в связи с изменениями многих протоколов и отключением по умолчанию устаревших протоколов в новых ОС, приводит к неработоспособности старых приложений. А нативные клиенты, 10-й и 11-й версий, все еще работают без проблем. Сегодня нужен OLEDB версии 18 (последняя версия 18.6): "Драйвер Microsoft OLE DB для SQL Server ( MSOLEDBSQL )". Ссылку уже дали ранее. Мы где-то год назад, столкнувшись с такой ситуацией, перешли на версию 18.3. Единственное изменение программ: в строке подключения слово "SQLOLEDB" заменили на слово "MSOLEDBSQL". Но нам была доступна строка подключения. А ТС, скорее всего, придется исправлять EXEшник. Вот и весь бред. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 09:13 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
Relic Hunter andy st Но всегда есть выход - запилить на hyper-v на том же компе с Win10 виртуалку на Win7, в которой всё "будет работать" и сделать ярлык :) писатель, не читатель :) авторПосле миграции пользователя на новый компьютер со старой Windows 7 на Windows 10 это приложение перестало авторизоваться на MS SQL 2008R2. на win7 работало что мешает повторить? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 09:51 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
Wlr-l aleks222 Что-то бред относительно OLEDB (которое сама мелкософт вновь признало каноничным, в противовес преданному анафеме нативному клиенту) кажется мне бредом. Сервер старый, приложение - старое. Новое только Win10. Вот Win10 и надо ковырять. 1. Любой другой клиент... ну... Excel - подключается через OLEDB? Может это и бред, но OLEDB " бывают разные: чёрные, белые, красные, но всем одинаково хочется на что-нибудь заморочиться ". Нативные клиенты - это тоже OLEDB. Уже написали, что " Предыдущие поставщики Microsoft OLE DB для SQL Server (SQLOLEDB ) и собственный клиент OLE DB для SQL Server (SQLNCLI) объявляются нерекомендуемыми для новых разработок". Вот этот SQLOLEDB , разработанный для SQL 2000 и включенный в качестве компонента в Windows XP, хотя он все еще присутствует в новых ОС, в связи с изменениями многих протоколов и отключением по умолчанию устаревших протоколов в новых ОС, приводит к неработоспособности старых приложений. А нативные клиенты, 10-й и 11-й версий, все еще работают без проблем. Сегодня нужен OLEDB версии 18 (последняя версия 18.6): "Драйвер Microsoft OLE DB для SQL Server ( MSOLEDBSQL )". Ссылку уже дали ранее. Мы где-то год назад, столкнувшись с такой ситуацией, перешли на версию 18.3. Единственное изменение программ: в строке подключения слово "SQLOLEDB" заменили на слово "MSOLEDBSQL". Но нам была доступна строка подключения. А ТС, скорее всего, придется исправлять EXEшник. Вот и весь бред. Он не перестает быть бредом. То, что вы не справились - ни о чем не свидетельствует. Кроме вашей некомпетентноси. Нибось подключение по NetPipes тупо подключиться не может. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 10:01 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
aleks222, Я не говорил, что компетентен. Например, я уже не помню, а может и не знал, что означает слово NetPipes, что-то очень далекое из NT4, кажется. Зачем воевать с ветряными мельницами, если муку в наше время можно купить в интернете? " Вот Win10 и надо ковырять " – твой совет. Так мы её и ковырнули: поменяли старый драйвер OLEDB на новый. Если наше старье работает так, как оно работало до этого, то с чем мы не справились? У ТС задача посложнее, кроме Win10 у него еще и строка подключения недоступна. И твой компетентный совет: " Любой другой клиент... ну... Excel - подключается через OLEDB? " напомнил мне диалог: Студент: "Сколько двоек вы ставите на экзамене?". Препод: "Если вы получите двойку, то какая вам разница сколько двоек будет еще?". " подключается через OLEDB? ". Через какой именно? У меня их с десяток на компьютере. " Приложение перестало авторизоваться " – это цветочки, ягодки будут, когда, например, datetime заменят на date. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 11:24 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
Allan Stark, Установить для этого приложения уровень совместимости Windows 7 не пробовали? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 11:42 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
invm, Пробовали, конечно. С тем же результатом. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 18:13 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
Решение вам было оглашено. Если у вас нет исходников, вам тут не помогут. Allan Stark invm, Пробовали, конечно. С тем же результатом. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 18:19 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
VB6 легко дизассемблируется в общем случае. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 18:21 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
Wlr-l Уже написали, что " Предыдущие поставщики Microsoft OLE DB для SQL Server (SQLOLEDB ) и собственный клиент OLE DB для SQL Server (SQLNCLI) объявляются нерекомендуемыми для новых разработок". Понятно, что дело в виндах, их и нужно ковырять, например, TLS 1.1 там включается в реестре (он не выпилен, а просто отключён) PS Не говоря уже о том, что сервер вообще ничего не знает о библиотеках доступа и OLE, он общается с компом по пайпам или тсп + по протоколу TDS. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 18:57 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
Allan Stark, установите wireshark, посмотрите какой пароль уходит на сервер. SQL аутентификация с открытым паролем. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2021, 20:57 |
|
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
|
|||
---|---|---|---|
#18+
Владислав Колосов, установите wireshark, посмотрите какой пароль уходит на сервер. SQL аутентификация с открытым паролем Все-таки коллеги выше были правы. Аутентификация не проходит из-за TLS. Попробовал на тестовой виртуалке с случайным пользователем. Приложение не может авторизоваться на сервере. Пароль и логин кстати идут уже в зашифрованном виде, а не открытым текстом. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2021, 19:43 |
|
|
start [/forum/topic.php?fid=46&fpage=18&tid=1684466]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 252ms |
total: | 384ms |
0 / 0 |