powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
25 сообщений из 29, страница 1 из 2
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085460
Allan Stark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть приложение колл-центра, судя по вкомпилированным строкам, написанное очень давно на 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 при переносе все сохранилось нетронутым.
Может кто-то сталкивался с чем-то подобным.
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085486
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Allan Stark,

Сталкивался. TLS 1.1 выпилили не так давно. Нужно переходить на нативный клиент. Никаких оледб.
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085493
Allan Stark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Relic Hunter,

Т.е. установить нативный MS SQL клиент из поставки MS SQL Server и попробовать завести ODBC через него?
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085496
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Allan Stark,

нужно менять строку подключения на Provider=SQLNCLI11.1
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085530
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тынц
авторПредыдущие поставщики Microsoft OLE DB для SQL Server (SQLOLEDB) и собственный клиент OLE DB для SQL Server (SQLNCLI) объявляются нерекомендуемыми для новых разработок.
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085563
Allan Stark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению не помогло.

Установил предложенный Microsoft OLE DB для SQL Server,
поменял в Computer\HKKU\...\Software\VB and VBA Program Settings\callcenter\UserInfo в ADOProvider с SQLOLEDB на SQLNCLI11.1, получаю ту же ошибку
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085568
Allan Stark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Снова глянул в логи трассировки ADO и там так и осталась старая строка подключения:
ConnectionString : Provider=SQLOLEDB...
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085572
Allan Stark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотрел внутри exe-шника, там тоже есть "Provider=SQLOLEDB", очевидно, что скорее всего просто намертво вкомпилено :(
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085591
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а может и пароль внутри exe вшит другой?
State 8 - ошибка пароля и вроде как других трактовок в доках нету
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085593
Allan Stark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andy st,

Вряд ли там есть пароль, приложение запрашивает имя пользователя и пароль при запуске и в логах MS SQL потом они фигурируют.
А вот такое есть (см. скриншот).
Видимо придется HEX редактором пытаться патчить бинарник...
Но может есть какой твик реестра чтобы попытаться обойти это дело? Может на уровне ODBC драйвера.
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085601
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Allan Stark,
Сборные строки подключения патчить в exe - занятие очень интересное. Под каждый драйвер свои ключевые слова.
воть
Где-то Database, где-то Initial Catalog
Где-то User ID, где-то UID
А может прикладуха к паролю что-нить добавляет в процессе сборки строки..
Но всегда есть выход - запилить на hyper-v на том же компе с Win10 виртуалку на Win7, в которой всё "будет работать" и сделать ярлык :)
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085604
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andy st
Но всегда есть выход - запилить на hyper-v на том же компе с Win10 виртуалку на Win7, в которой всё "будет работать" и сделать ярлык :)
Не поможет. Сама наивность. Это сервер отфутболивает соединение когда его просят по оледб))
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085611
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Allan Stark
со старой Windows 7 на Windows 10 это приложение перестало авторизоваться на MS SQL 2008R2.
Аутентификация нативная SQL.


Что-то бред относительно OLEDB (которое сама мелкософт вновь признало каноничным, в противовес преданному анафеме нативному клиенту) кажется мне бредом.

Сервер старый, приложение - старое. Новое только Win10.
Вот Win10 и надо ковырять.

1. Любой другой клиент... ну... Excel - подключается через OLEDB?
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085628
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шник.

Вот и весь бред.
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085638
andy st
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Relic Hunter
andy st
Но всегда есть выход - запилить на hyper-v на том же компе с Win10 виртуалку на Win7, в которой всё "будет работать" и сделать ярлык :)
Не поможет. Сама наивность. Это сервер отфутболивает соединение когда его просят по оледб))

писатель, не читатель :)
авторПосле миграции пользователя на новый компьютер со старой Windows 7 на Windows 10 это приложение перестало авторизоваться на MS SQL 2008R2.
на win7 работало
что мешает повторить?
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085640
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 тупо подключиться не может.
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085668
Wlr-l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222,

Я не говорил, что компетентен. Например, я уже не помню, а может и не знал, что означает слово NetPipes, что-то очень далекое из NT4, кажется.

Зачем воевать с ветряными мельницами, если муку в наше время можно купить в интернете?
" Вот Win10 и надо ковырять " – твой совет. Так мы её и ковырнули: поменяли старый драйвер OLEDB на новый. Если наше старье работает так, как оно работало до этого, то с чем мы не справились? У ТС задача посложнее, кроме Win10 у него еще и строка подключения недоступна.

И твой компетентный совет: " Любой другой клиент... ну... Excel - подключается через OLEDB? " напомнил мне диалог:
Студент: "Сколько двоек вы ставите на экзамене?".
Препод: "Если вы получите двойку, то какая вам разница сколько двоек будет еще?".

" подключается через OLEDB? ". Через какой именно? У меня их с десяток на компьютере.

" Приложение перестало авторизоваться " – это цветочки, ягодки будут, когда, например, datetime заменят на date.
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085673
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Allan Stark,

Установить для этого приложения уровень совместимости Windows 7 не пробовали?
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085780
Allan Stark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invm,

Пробовали, конечно. С тем же результатом.
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085783
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решение вам было оглашено. Если у вас нет исходников, вам тут не помогут.
Allan Stark
invm,

Пробовали, конечно. С тем же результатом.
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085785
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VB6 легко дизассемблируется в общем случае.
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085797
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wlr-l
Уже написали, что " Предыдущие поставщики Microsoft OLE DB для SQL Server (SQLOLEDB ) и собственный клиент OLE DB для SQL Server (SQLNCLI) объявляются нерекомендуемыми для новых разработок".
Не к месту написали. Тут не "новая разработка", а коннект древнего приложения VB6, к тоже уже немолодому MSSQL2008, для которых этот клиент самый что ни на есть нативный, современный, и рекомендуемый.

Понятно, что дело в виндах, их и нужно ковырять, например, TLS 1.1 там включается в реестре (он не выпилен, а просто отключён)

PS Не говоря уже о том, что сервер вообще ничего не знает о библиотеках доступа и OLE, он общается с компом по пайпам или тсп + по протоколу TDS.
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40085822
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Allan Stark,

установите wireshark, посмотрите какой пароль уходит на сервер. SQL аутентификация с открытым паролем.
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40086326
Allan Stark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосов,

установите wireshark, посмотрите какой пароль уходит на сервер. SQL аутентификация с открытым паролем

Все-таки коллеги выше были правы. Аутентификация не проходит из-за TLS.
Попробовал на тестовой виртуалке с случайным пользователем. Приложение не может авторизоваться на сервере.
Пароль и логин кстати идут уже в зашифрованном виде, а не открытым текстом.
...
Рейтинг: 0 / 0
Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
    #40086361
Allan Stark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал принудительно включить обратно через реестр TLS 1.0 и TLS 1.1.
Не помогло :(
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Старое VB6 приложение не хочет авторизироваться в MS SQL 2008R2
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]