Как переопределить или обойти скомпилированную информацию о подключении к БД - PullRequest
0 голосов
/ 10 сентября 2009

Я столкнулся с немного странной проблемой. Есть сайт, который клиент хотел бы дублировать на другое доменное имя. Сайт построен на ASP (да, старый v1 ASP :() с SQLServer. Проблема в том, что все операции с базой данных, включая информацию о соединении, скомпилированы в библиотеку DLL.

Есть ли какой-нибудь способ как перехватить, переопределить или обойти это?

Платформа:

  • Windows 2000 Server
  • SQLServer 7
  • ASP v1 (VisualBasic)

Ответы [ 5 ]

3 голосов
/ 10 сентября 2009

Какой кошмар ...

Если у вас есть контроль над новым сервером базы данных, и строка подключения ссылается на сервер базы данных по имени, вы можете добавить строку в файле hosts, которая указывает имя старого сервера на новый IP-адрес. Затем вам все равно придется создать пользователя с тем же паролем на новом сервере базы данных.

1 голос
/ 10 сентября 2009

Да! Однако имя вашей новой базы данных ДОЛЖНО быть меньше или равно длине вашего старого. Просто откройте vb6 .dll в любом Hex Editor и найдите и замените. УБЕДИТЕСЬ, что вы не изменили длину библиотеки DLL и не сдвинули байтов.

В противном случае добавьте запись хоста в Windows, чтобы перенаправить соединение.

0 голосов
/ 11 сентября 2009

Прежде чем взломать DNS или переименовать сервер, имейте в виду, что клиент SQL Server поддерживает псевдонимы специально для этого сценария: Как: создать псевдоним сервера для использования клиентом .

Средством SQL 2000 для настройки псевдонима является Client Network Utility .

0 голосов
/ 11 сентября 2009

Может ли приложение использовать определение DSN для соединения?

В панели управления -> Администрирование откройте ODBC Data Source Administrator Взгляните на вкладку System DSN. Кажется ли там что-нибудь, что связано с приложением?

0 голосов
/ 10 сентября 2009

Есть ли у вас какие-либо параметры конфигурации из asp? Даже dbname или такой? Если это так, вы можете использовать два отдельных сервера для IIS и использовать один сервер БД. Боюсь, вам может понадобиться найти источник или парня, который это написал.

Если бы вы могли выяснить строку подключения или DNS, вы могли бы что-то сделать.

Вы можете написать своего собственного транзитного ODBC-провайдера.

...