|
|
|
Как вложить (insert, delete, update) в SELECT запрос?
|
|||
|---|---|---|---|
|
#18+
Монстры SQL, подскажите... Если учитывать, что никаких ограничений при составлении запроса не существует, то возможно ли в каком либо виде выполнить вложенные INSERT, UPDATE или DELETE запросы внутри SELECT запроса? Не важно, какой длины и уровня вложенности будет конечный запрос. Главное узнать - возможно ли это вообще. Хотя бы теоретически... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 13:10:59 |
|
||
|
Как вложить (insert, delete, update) в SELECT запрос?
|
|||
|---|---|---|---|
|
#18+
Нельзя, я думаю. А зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 13:17:30 |
|
||
|
Как вложить (insert, delete, update) в SELECT запрос?
|
|||
|---|---|---|---|
|
#18+
Есть жизненная необходимость именно такого решения. Очень надо. Неважно, приминительно к какой таблице будет запрос SELECT, какой сложности и т.д. Я не большой специалист SQL, но интуитивно могу предположить, что результаты INSERT (или UPDATE, DELETE) запросов могжно каким либо образоп привести к bool значениям (удался / не удался). Суть решения вопроса может скрываться в идеологии использования этого bool значения принаписании запроса типа: SELECT id, name, active FROM some_table WHERE active = (INSERT INTO other_table (some_field) values (some_value)); Если учитывать, что active поле типа bool, и "INSERT INTO other_table (some_field) values (some_value)" тоже можно привести к bool, то, в принципе, идеология имеет смысл. Но это только мои догадки. Помогите, плиз. Буду благодарен за любые подсказки и идеи... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 13:28:28 |
|
||
|
Как вложить (insert, delete, update) в SELECT запрос?
|
|||
|---|---|---|---|
|
#18+
Это можно сделать и двумя запросами insert ******* if @@error <> 0 - ошибка else select ****** Только все же непонятно: Зачем? И что же такое тогда выберет select? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 13:32:53 |
|
||
|
Как вложить (insert, delete, update) в SELECT запрос?
|
|||
|---|---|---|---|
|
#18+
В том то и дело, что сделать 2 запроса нет возможности. Почему - объясню ниже. Что выберет SELECT? А неважно что он выберет. Меня интересует результат именно INSERT, DELETE or UPDATE. SELECT используется просто как "чехол" для этих целей. А зачем все это? Хм... Я в первый раз на этом форуме, но думаю, тут некого стесьняться... Для SQL Injection. Меня очень заинтересовал этот метод взлома. Просто когда за 2 дня легко ломаются 2 крупных сайта (с полным доступом к их ресурсам) это очень возбуждает... Да и к тому, же, я разработчик web-приложений, и изучить эту методику в совершенстве не помешало бы только для квалифицированного создания этих самых web-приложений. Кстати, если кто нибудь из присутствующих имеет какой либо опыт в этом направлении или знает полезные ресурсы по этой теме (только не для чайников), буду благодарен. Но вопрос остается в силе... Не выхода? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 13:43:37 |
|
||
|
Как вложить (insert, delete, update) в SELECT запрос?
|
|||
|---|---|---|---|
|
#18+
. Просто когда за 2 дня легко ломаются 2 крупных сайта (с полным доступом к их ресурсам) это очень возбуждает... Женится Вам, барин, надо бы (С) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 13:48:40 |
|
||
|
Как вложить (insert, delete, update) в SELECT запрос?
|
|||
|---|---|---|---|
|
#18+
программа берет текстовую переменную А и подставляет в sql строку 'SELECT * FROM table WHERE afield like ''%'+ A + '''' и выполняет метот execute..... угу.... вот если в переменную А записать например А='''' drop table master.dbo.sysusers' .......... нда... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 16:01:42 |
|
||
|
Как вложить (insert, delete, update) в SELECT запрос?
|
|||
|---|---|---|---|
|
#18+
Использовать вложенные insert, update и delete нельзя. Но для взлома подобной реализации, ничто не помешает при обращении создать временную глобальную хранимую процедуру и ее выполнить. Вряд ли 'разработчики' сайта проверяют тескт запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 16:13:45 |
|
||
|
Как вложить (insert, delete, update) в SELECT запрос?
|
|||
|---|---|---|---|
|
#18+
думаю методом execute с собиранием строки на клиенте ни кто не балуется?..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2002, 16:14:27 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32066847&tid=1818896]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 356ms |

| 0 / 0 |
