powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Перехват и подмена SQL-запроса
14 сообщений из 14, страница 1 из 1
Перехват и подмена SQL-запроса
    #34840440
LinCor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую all!
Есть следующая задача: клиентское приложение генерит sql и засылает его на сервер. Необходимо на клиенте поймать этот самый sql и подменить на свой. Перехват должен быть осуществлен ДО получения запроса ядром сервера БД. Причем решение должно работать и с MSSQL и c Oracle. С подобной задачей я не сталкивался, поэтому и прошу вашего совета - подскажите какую доку следует почитать для решения этой задачи. Почти уверен в том, что надо реализовать 2 решения в одной программе: одно для MSSQL, второе для Oracle. Какую доку читать в каждом случае? И вообще - возможна ли вообще подобная реализация на C++?
Заранее благодарен за ответы, с уважением.
...
Рейтинг: 0 / 0
Перехват и подмена SQL-запроса
    #34840454
pikarya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Перехват и подмена SQL-запроса
    #34840533
LinCor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pikaryaпримерно так: http://sql.ru/forum/actualthread.aspx?tid=478696#4731603
спасибо, пороюсь в доке по этой теме. а по Ораклу где покопать можно?
С уважением.
...
Рейтинг: 0 / 0
Перехват и подмена SQL-запроса
    #34841330
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А о цели такой подмены можно осведомиться ?
...
Рейтинг: 0 / 0
Перехват и подмена SQL-запроса
    #34841387
LinCor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)А о цели такой подмены можно осведомиться ?

Запросто можно: есть приложение, которое запускает отчеты работающие на основе SQL сгенерированного самим приложением. Т.е, разработчик не может ручками написать запрос для отчета, можно только мышкой поля натягать (предложение SELECT) и критерии расставить (предложение WHERE). Т.е - никаких вложенных селектов, никаких GROUP BY (!!!!), на запрос хинт не повесить, короче говоря - все это очень сковывает руки. Вот и хочу попробовать повлиять на стандартный фувнкционал вот такими "хакерскими методами"))
...
Рейтинг: 0 / 0
Перехват и подмена SQL-запроса
    #34841423
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот я и спрашиваю до какой степени повлиять ?
...
Рейтинг: 0 / 0
Перехват и подмена SQL-запроса
    #34841469
LinCor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)вот я и спрашиваю до какой степени повлиять ?

До такой чтобы подменить предложение WHERE на свое, добавить (если надо) группировку, и если ОЧЕНЬ надо - повесить хинт на использование конкретного индекса.
Схема примерно такова:

1: программа висит на клиенте и ловит SQL к базе.
2: пойманный SQL приостанавливается (на сервер не идет).
3: IF "надо поменять SQL" THEN "меняем SQL на нужный" ESLE "ничего не делаем".
4: отпускаем SQL на сервер.
...
Рейтинг: 0 / 0
Перехват и подмена SQL-запроса
    #34841555
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Именно в такой формулировке - заимеешься. Хуками на обращения к сокету либо к примеру свой ODBC-драйвер очень трудоемко и на низком уровне.
В Oracle можно в некоторых пределах менять WHERE посредством FGAC
А view-хи тебя точно не спасут ???
...
Рейтинг: 0 / 0
Перехват и подмена SQL-запроса
    #34841624
LinCor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Именно в такой формулировке - заимеешься. Хуками на обращения к сокету либо к примеру свой ODBC-драйвер очень трудоемко и на низком уровне.
В Oracle можно в некоторых пределах менять WHERE посредством FGAC
А view-хи тебя точно не спасут ???

то, что заимеюсь это делать - хреново. Очень хреново. Но все равно буду пробовать.
по поводу вьюх - не вкурил , подробнее объяснишь? Спасибо заранее.
...
Рейтинг: 0 / 0
Перехват и подмена SQL-запроса
    #34842012
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LinCor пишет:
> то, что заимеюсь это делать - хреново. Очень хреново. Но все равно буду
> пробовать.

Кроме того, ты заимеешься это делать аж ДВА РАЗА !!
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Перехват и подмена SQL-запроса
    #34842146
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LinCor L> Запросто можно: есть приложение, которое запускает отчеты
L> работающие на основе SQL сгенерированного самим
L> приложением. Т.е, разработчик не может ручками написать
L> запрос для отчета, можно только мышкой поля натягать
L> (предложение SELECT) и критерии расставить (предложение
L> WHERE). Т.е - никаких вложенных селектов, никаких GROUP BY
L> (!!!!), на запрос хинт не повесить, короче говоря - все
L> это очень сковывает руки. Вот и хочу попробовать повлиять
L> на стандартный фувнкционал вот такими "хакерскими
L> методами"))А приложение не удивится, когда ему придут, например, совсем не те поля, что оно ожидает ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Перехват и подмена SQL-запроса
    #34842597
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LinCor Gluk (Kazan)Именно в такой формулировке - заимеешься. Хуками на обращения к сокету либо к примеру свой ODBC-драйвер очень трудоемко и на низком уровне.
В Oracle можно в некоторых пределах менять WHERE посредством FGAC
А view-хи тебя точно не спасут ???

то, что заимеюсь это делать - хреново. Очень хреново. Но все равно буду пробовать.
по поводу вьюх - не вкурил , подробнее объяснишь? Спасибо заранее.

Если тебе не надо решать эту задачу в ОБЩЕМ виде (а в таком виде она выглядит несколько ... странно), то в плане ЧАСТНЫХ задачек при помощи вьюх, триггеров и такой то матери на стороне сервера можно реализовать ЛЮБОЕ сколь угодно странное поведение
...
Рейтинг: 0 / 0
Перехват и подмена SQL-запроса
    #34842902
LinCor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Карабас Барабас]А приложение не удивится, когда ему придут, например, совсем не те поля, что оно ожидает ?/quot]
приложение конечно очень удивится и откажется работать. поэтому поля перечисленные в SELECT меняться НЕ будут. Только условия в WHERE.
...
Рейтинг: 0 / 0
Перехват и подмена SQL-запроса
    #34842911
LinCor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно коллеги. Спасибо вам как минимум за то что охладили мой пыл. Чувствую что взялся за тяжелую ношу. попробую еще пару неделек с ней "поиметься". Если сдвиги будут - продолжу, нет - значит нет) Всем удачи.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Перехват и подмена SQL-запроса
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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