|
|
|
Перехват и подмена SQL-запроса
|
|||
|---|---|---|---|
|
#18+
Приветствую all! Есть следующая задача: клиентское приложение генерит sql и засылает его на сервер. Необходимо на клиенте поймать этот самый sql и подменить на свой. Перехват должен быть осуществлен ДО получения запроса ядром сервера БД. Причем решение должно работать и с MSSQL и c Oracle. С подобной задачей я не сталкивался, поэтому и прошу вашего совета - подскажите какую доку следует почитать для решения этой задачи. Почти уверен в том, что надо реализовать 2 решения в одной программе: одно для MSSQL, второе для Oracle. Какую доку читать в каждом случае? И вообще - возможна ли вообще подобная реализация на C++? Заранее благодарен за ответы, с уважением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2007, 12:17:01 |
|
||
|
Перехват и подмена SQL-запроса
|
|||
|---|---|---|---|
|
#18+
примерно так: http://sql.ru/forum/actualthread.aspx?tid=478696#4731603 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2007, 12:21:05 |
|
||
|
Перехват и подмена SQL-запроса
|
|||
|---|---|---|---|
|
#18+
pikaryaпримерно так: http://sql.ru/forum/actualthread.aspx?tid=478696#4731603 спасибо, пороюсь в доке по этой теме. а по Ораклу где покопать можно? С уважением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2007, 12:49:49 |
|
||
|
Перехват и подмена SQL-запроса
|
|||
|---|---|---|---|
|
#18+
А о цели такой подмены можно осведомиться ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2007, 15:50:47 |
|
||
|
Перехват и подмена SQL-запроса
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)А о цели такой подмены можно осведомиться ? Запросто можно: есть приложение, которое запускает отчеты работающие на основе SQL сгенерированного самим приложением. Т.е, разработчик не может ручками написать запрос для отчета, можно только мышкой поля натягать (предложение SELECT) и критерии расставить (предложение WHERE). Т.е - никаких вложенных селектов, никаких GROUP BY (!!!!), на запрос хинт не повесить, короче говоря - все это очень сковывает руки. Вот и хочу попробовать повлиять на стандартный фувнкционал вот такими "хакерскими методами")) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2007, 16:04:07 |
|
||
|
Перехват и подмена SQL-запроса
|
|||
|---|---|---|---|
|
#18+
вот я и спрашиваю до какой степени повлиять ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2007, 16:12:35 |
|
||
|
Перехват и подмена SQL-запроса
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)вот я и спрашиваю до какой степени повлиять ? До такой чтобы подменить предложение WHERE на свое, добавить (если надо) группировку, и если ОЧЕНЬ надо - повесить хинт на использование конкретного индекса. Схема примерно такова: 1: программа висит на клиенте и ловит SQL к базе. 2: пойманный SQL приостанавливается (на сервер не идет). 3: IF "надо поменять SQL" THEN "меняем SQL на нужный" ESLE "ничего не делаем". 4: отпускаем SQL на сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2007, 16:22:08 |
|
||
|
Перехват и подмена SQL-запроса
|
|||
|---|---|---|---|
|
#18+
Именно в такой формулировке - заимеешься. Хуками на обращения к сокету либо к примеру свой ODBC-драйвер очень трудоемко и на низком уровне. В Oracle можно в некоторых пределах менять WHERE посредством FGAC А view-хи тебя точно не спасут ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2007, 16:46:30 |
|
||
|
Перехват и подмена SQL-запроса
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Именно в такой формулировке - заимеешься. Хуками на обращения к сокету либо к примеру свой ODBC-драйвер очень трудоемко и на низком уровне. В Oracle можно в некоторых пределах менять WHERE посредством FGAC А view-хи тебя точно не спасут ??? то, что заимеюсь это делать - хреново. Очень хреново. Но все равно буду пробовать. по поводу вьюх - не вкурил , подробнее объяснишь? Спасибо заранее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2007, 17:02:54 |
|
||
|
Перехват и подмена SQL-запроса
|
|||
|---|---|---|---|
|
#18+
LinCor пишет: > то, что заимеюсь это делать - хреново. Очень хреново. Но все равно буду > пробовать. Кроме того, ты заимеешься это делать аж ДВА РАЗА !! Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2007, 18:38:53 |
|
||
|
Перехват и подмена SQL-запроса
|
|||
|---|---|---|---|
|
#18+
LinCor L> Запросто можно: есть приложение, которое запускает отчеты L> работающие на основе SQL сгенерированного самим L> приложением. Т.е, разработчик не может ручками написать L> запрос для отчета, можно только мышкой поля натягать L> (предложение SELECT) и критерии расставить (предложение L> WHERE). Т.е - никаких вложенных селектов, никаких GROUP BY L> (!!!!), на запрос хинт не повесить, короче говоря - все L> это очень сковывает руки. Вот и хочу попробовать повлиять L> на стандартный фувнкционал вот такими "хакерскими L> методами"))А приложение не удивится, когда ему придут, например, совсем не те поля, что оно ожидает ? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2007, 19:50:59 |
|
||
|
Перехват и подмена SQL-запроса
|
|||
|---|---|---|---|
|
#18+
LinCor Gluk (Kazan)Именно в такой формулировке - заимеешься. Хуками на обращения к сокету либо к примеру свой ODBC-драйвер очень трудоемко и на низком уровне. В Oracle можно в некоторых пределах менять WHERE посредством FGAC А view-хи тебя точно не спасут ??? то, что заимеюсь это делать - хреново. Очень хреново. Но все равно буду пробовать. по поводу вьюх - не вкурил , подробнее объяснишь? Спасибо заранее. Если тебе не надо решать эту задачу в ОБЩЕМ виде (а в таком виде она выглядит несколько ... странно), то в плане ЧАСТНЫХ задачек при помощи вьюх, триггеров и такой то матери на стороне сервера можно реализовать ЛЮБОЕ сколь угодно странное поведение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 08:47:36 |
|
||
|
Перехват и подмена SQL-запроса
|
|||
|---|---|---|---|
|
#18+
[quot Карабас Барабас]А приложение не удивится, когда ему придут, например, совсем не те поля, что оно ожидает ?/quot] приложение конечно очень удивится и откажется работать. поэтому поля перечисленные в SELECT меняться НЕ будут. Только условия в WHERE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 10:41:50 |
|
||
|
Перехват и подмена SQL-запроса
|
|||
|---|---|---|---|
|
#18+
Ладно коллеги. Спасибо вам как минимум за то что охладили мой пыл. Чувствую что взялся за тяжелую ношу. попробую еще пару неделек с ней "поиметься". Если сдвиги будут - продолжу, нет - значит нет) Всем удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2007, 10:44:41 |
|
||
|
|

start [/forum/topic.php?fid=57&gotonew=1&tid=2028072]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
459ms |
get topic data: |
15ms |
get first new msg: |
9ms |
get forum data: |
4ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 845ms |

| 0 / 0 |
