Re[2]: Перехват и подмена SQL запроса
От: seregaa Ниоткуда http://blogtani.ru
Дата: 04.10.07 09:52
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Led, Вы писали:


S>Ну, если хочется жосткого секса без поблажек, то можно поискать в сети спецификации протокола TDS. Например, сходить на http://www.freetds.org/.

S>Затем реализовать свой простенький прокси для этого протокола. Т.е. ты ставишь софтинку на клиентскую машину, приложение-жертва коннектится к localhost, а твой прокси перенаправляет запросы на настоящий сервер.
Как вариант — написать свой odbc/oledb драйвер-прокси, перенаправляющий все запросы к настоящему драйверу.
Мобильная версия сайта RSDN — http://rsdn.org/forum/rsdn/6938747
Автор: sergeya
Дата: 19.10.17
Перехват и подмена SQL запроса
От: Led Россия  
Дата: 02.10.07 09:01
Оценка:
Приветствую all!
Есть следующая задача: клиентское приложение генерит sql и засылает его на сервер. Необходимо на клиенте поймать этот самый sql и подменить на свой. Перехват должен быть осуществлен ДО получения запроса ядром сервера БД. Причем решение должно работать и с MSSQL и c Oracle. С подобной задачей я не сталкивался, поэтому и прошу вашего совета — подскажите какую доку следует почитать для решения этой задачи. Почти уверен в том, что надо реализовать 2 решения в одном флаконе: одно для MSSQL, второе для Oracle. Какую доку читать в каждом случае? И вообще — возможна ли вообще подобная реализация?
Заранее благодарен за ответы, с уважением.
Re: Перехват и подмена SQL запроса
От: Веселый кролик Россия  
Дата: 02.10.07 10:25
Оценка:
Здравствуйте, Led, Вы писали:

Led>Приветствую all!

Led>Есть следующая задача: клиентское приложение генерит sql и засылает его на сервер. Необходимо на клиенте поймать этот самый sql и подменить на свой. Перехват должен быть осуществлен ДО получения запроса ядром сервера БД. Причем решение должно работать и с MSSQL и c Oracle. С подобной задачей я не сталкивался, поэтому и прошу вашего совета — подскажите какую доку следует почитать для решения этой задачи. Почти уверен в том, что надо реализовать 2 решения в одном флаконе: одно для MSSQL, второе для Oracle. Какую доку читать в каждом случае? И вообще — возможна ли вообще подобная реализация?
Led>Заранее благодарен за ответы, с уважением.

А зачем это?
То что меня не убивает, делает меня умнее.
Re: Перехват и подмена SQL запроса
От: Аноним  
Дата: 02.10.07 10:31
Оценка:
Здравствуйте, Led, Вы писали:

Led>Приветствую all!

Led>Есть следующая задача: клиентское приложение генерит sql и засылает его на сервер. Необходимо на клиенте поймать этот самый sql и подменить на свой. Перехват должен быть осуществлен ДО получения запроса ядром сервера БД. Причем решение должно работать и с MSSQL и c Oracle. С подобной задачей я не сталкивался, поэтому и прошу вашего совета — подскажите какую доку следует почитать для решения этой задачи. Почти уверен в том, что надо реализовать 2 решения в одном флаконе: одно для MSSQL, второе для Oracle. Какую доку читать в каждом случае? И вообще — возможна ли вообще подобная реализация?
Led>Заранее благодарен за ответы, с уважением.

Вообще-то, странное желание...
Но вообще-то в MSSQL для этого используются INSTEAD OF триггеры.
Re[2]: Перехват и подмена SQL запроса
От: Led Россия  
Дата: 02.10.07 11:24
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Вообще-то, странное желание...


Как бы странно это не звучало, но есть приложение, которое генерит запросы для работы отчетов автоматически, не давая возможности написать SQL-выражение руками.(JDEdwards, есть такая софтина. Кто работал с ней тот меня поймет ) Например невозможно использование GROUP BY, нельзя создавать вложенных SELECT'ов, хинт на запрос не повесить и т.п. Это очень здорово сковывает разработчиков, вот я и пытаюсь попробовать внедриться в SQL сгенерированный приложением и добавить в него что нибудь рукописное. Причем желательно реализовать с помощью С++.
Re[3]: Перехват и подмена SQL запроса
От: MasterZiv СССР  
Дата: 02.10.07 12:47
Оценка:
Led пишет:
> очень здорово сковывает разработчиков, вот я и пытаюсь попробовать
> внедриться в SQL сгенерированный приложением и добавить в него что
> нибудь рукописное. Причем желательно реализовать с помощью С++.

Боюсь что неправильным путем вы идете, товарищь ...
Posted via RSDN NNTP Server 2.1 beta
Re[4]: Перехват и подмена SQL запроса
От: Led Россия  
Дата: 02.10.07 13:04
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>Led пишет:

>> очень здорово сковывает разработчиков, вот я и пытаюсь попробовать
>> внедриться в SQL сгенерированный приложением и добавить в него что
>> нибудь рукописное. Причем желательно реализовать с помощью С++.

MZ>Боюсь что неправильным путем вы идете, товарищь ...


а где же он — правильный путь?))
Re[5]: Перехват и подмена SQL запроса
От: MasterZiv СССР  
Дата: 02.10.07 15:42
Оценка:
Led пишет:
> MZ>Боюсь что неправильным путем вы идете, товарищь ...
>
> а где же он — правильный путь?))

Правильный путь в отказе от использования таких софтин, которые
"не давая возможности написать SQL-выражение руками".
JDEdwards, говоришь ?
Posted via RSDN NNTP Server 2.1 beta
Re[6]: Перехват и подмена SQL запроса
От: Аноним  
Дата: 03.10.07 06:50
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>Правильный путь в отказе от использования таких софтин, которые

MZ>"не давая возможности написать SQL-выражение руками".
MZ>JDEdwards, говоришь ?

JDEdwards, он самый. От такой софтины отказаться — это не решение. Ибо сложность разработки внутри такой софтины руководство не волнует и совершенно правильно не волнует. А вот то, что с внедрением подобных систем повышается качество отчетности — это факт. При условии, конечно, нормальных бизнес процессов на предприятии и адекватной команды со стороны заказчика и внедренцев.
Re: Перехват и подмена SQL запроса
От: Аноним  
Дата: 03.10.07 07:43
Оценка:
Здравствуйте, Led, Вы писали:

Led>Приветствую all!

Led>Есть следующая задача: клиентское приложение генерит sql и засылает его на сервер. Необходимо на клиенте поймать этот самый sql и подменить на свой.

Действительно есть такая неприятная задачка — в зависимости от выбора пользователя менять
содержание запроса. Думаю тебе надо перехватывать не на стороне сервера а на стороне клиента. Пользователь навыбирал цокнул на кнопку, ты проанализировал на стороне клиента что он навыбирал и выбрал и отослал нужный заранее подготовленый запрос на сервер. Если пользователь выбирал что-то с сервера и это что-то должно/недолжно попасть в результаты(ну что-то вроде фильтра),то тоже самое выбираешь один из готовых запросов и отсылаешь. Если это не нравится, то придётся клеить строки и из них собирать запрос, но это сложнее.
На стороне сервера выгоды в простоте ты не получишь.
В MQ SQL2000 можно посмотреть в сторону расширенных хранимых процедур Extended Stored Procedure.
PS. Активизироваться не смог.
PWW
Re: Перехват и подмена SQL запроса
От: Sinclair Россия https://github.com/evilguest/
Дата: 04.10.07 07:37
Оценка:
Здравствуйте, Led, Вы писали:

Ну, если хочется жосткого секса без поблажек, то можно поискать в сети спецификации протокола TDS. Например, сходить на http://www.freetds.org/.
Затем реализовать свой простенький прокси для этого протокола. Т.е. ты ставишь софтинку на клиентскую машину, приложение-жертва коннектится к localhost, а твой прокси перенаправляет запросы на настоящий сервер.
Ну и в конце, собственно, научиться выцеплять интересующие тебя запросы и подменять их правильным образом.
Сам я такого ужоса никогда не видел, но чисто теоретически это всё возможно.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Перехват и подмена SQL запроса
От: bloom  
Дата: 04.10.07 08:13
Оценка:
Здравствуйте, Led, Вы писали:

это не то что вы хотели точно...
для Оракла гляньте на dbms_advanced_rewrite
Re[3]: Перехват и подмена SQL запроса
От: seregaa Ниоткуда http://blogtani.ru
Дата: 04.10.07 09:49
Оценка:
Здравствуйте, Led, Вы писали:

Led>Например невозможно использование GROUP BY, нельзя создавать вложенных SELECT'ов, хинт на запрос не повесить и т.п.

часть таких ограничений можно обойти, если цеплять софтину не напрямую к таблицам, а ко вьюхам, в которых все эти group by и хинты уже прописаны.
Мобильная версия сайта RSDN — http://rsdn.org/forum/rsdn/6938747
Автор: sergeya
Дата: 19.10.17
Re[3]: Перехват и подмена SQL запроса
От: Led Россия  
Дата: 05.10.07 12:44
Оценка:
Здравствуйте, seregaa, Вы писали:

S>Здравствуйте, Sinclair, Вы писали:

S>Как вариант — написать свой odbc/oledb драйвер-прокси, перенаправляющий все запросы к настоящему драйверу.

Звучит интересно, где можно ознакомиться/почитать про написание собственных odbc/oledb драйверов-прокси, не подскажете ссылкой? Заранее благодарю.
Re[4]: Перехват и подмена SQL запроса
От: seregaa Ниоткуда http://blogtani.ru
Дата: 05.10.07 12:56
Оценка:
Здравствуйте, Led, Вы писали:

Led>Звучит интересно, где можно ознакомиться/почитать про написание собственных odbc/oledb драйверов-прокси, не подскажете ссылкой? Заранее благодарю.


MSDN?

ODBC
ODBC Programmer's Reference: Developing Applications and Drivers

OLEDB:
OLE DB Simple Provider (OSP) Toolkit
"The Microsoft OLE DB Simple Provider (OSP) Toolkit offers a framework that simplifies the task of writing OLE DB providers over simple data and exposing that data to any OLE DB consumer"
Мобильная версия сайта RSDN — http://rsdn.org/forum/rsdn/6938747
Автор: sergeya
Дата: 19.10.17
Re[3]: Перехват и подмена SQL запроса
От: locky283  
Дата: 17.10.07 15:28
Оценка:
Здравствуйте, Led, Вы писали:

Led>Здравствуйте, Аноним, Вы писали:


А>>Вообще-то, странное желание...


Led>Как бы странно это не звучало, но есть приложение, которое генерит запросы для работы отчетов автоматически, не давая возможности написать SQL-выражение руками.(JDEdwards, есть такая софтина. Кто работал с ней тот меня поймет ) Например невозможно использование GROUP BY, нельзя создавать вложенных SELECT'ов, хинт на запрос не повесить и т.п. Это очень здорово сковывает разработчиков, вот я и пытаюсь попробовать внедриться в SQL сгенерированный приложением и добавить в него что нибудь рукописное. Причем желательно реализовать с помощью С++.


Извините, но — максимум что тут можно сделать — это подарить Вам скафандр с гамаком.
Я по долгу службы занимаюсь автоматическим разбором и преобразованием запросов...
Это — само по себе — занятие не для слабонервных...
Если включить сюда еще и анализ пакетов TDS и (не знаю, как оно зовётся в оракл)...
Скажем так — могу только пожелать удачи
... << RSDN@Home 1.2.0 alpha rev. 752>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.