The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Реверсхак SQL"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Базы данных, SQL)
Изначальное сообщение [ Отслеживать ]

"Реверсхак SQL"  +/
Сообщение от pavlinux (ok) on 30-Янв-14, 20:28 
Мужики, а есть ли в природе фильтр для SQL, который по запросам на чтение
создаёт структуру базу и таблицы?  

Например USE superdb заменить на IF NOT EXIST 'superdb' CREATE DATABASE superdb;

SELECT ля-ля-ля, ды-ды-ды FROM secrettable;
CREATE TABLE  secrettable (ля-ля-ля, ды-ды-ды );

...и только потом отработать SELECT

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Реверсхак SQL"  +/
Сообщение от asavah (ok) on 30-Янв-14, 21:57 
> Мужики, а есть ли в природе фильтр для SQL, который по запросам
> на чтение
> создаёт структуру базу и таблицы?
> Например USE superdb заменить на IF NOT EXIST 'superdb' CREATE DATABASE superdb;
> SELECT ля-ля-ля, ды-ды-ды FROM secrettable;
> CREATE TABLE  secrettable (ля-ля-ля, ды-ды-ды );
> ...и только потом отработать SELECT

павлин отсыпь травы не жмись

мелкомягкий sql2008  умеет
IF (NOT EXIST (SELECT 100г FROM поллитра))
BEGIN
     наливай
END
ELSE
BEGIN
     неси закусь
END

в мускуле такого нет, в постгре не помню

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Реверсхак SQL"  +/
Сообщение от pavlinux (ok) on 30-Янв-14, 23:17 
>[оверквотинг удален]
> павлин отсыпь травы не жмись
> мелкомягкий sql2008  умеет
> IF (NOT EXIST (SELECT 100г FROM поллитра))
> BEGIN
>      наливай
> END
> ELSE
> BEGIN
>      неси закусь
> END

И куда этот код сувать?
---

Во, тока сцука интерактивное http://sqlfiddle.com

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Реверсхак SQL"  +/
Сообщение от ACCA (ok) on 31-Янв-14, 01:28 
> Мужики, а есть ли в природе фильтр для SQL, который по запросам
> на чтение создаёт структуру базу и таблицы?

В общем-то легко, только делай select не таблицы, а своей функции, которая проверит и насобачит что угодно. Другой вопрос - а нафига это нужно?

Как отслеживать версии структуры таблицы - непонятно. Запихать в свою функцию deployment, version control, replicaiton и прочую функциональность можно, но как-то стыдно.

Смотри в сторону Puppet и подобных, чтобы не выяснять, есть ли база, а иметь гарантию, что приложение запущено только после того, как
  - оно установлено
  - база создана
  - таблицы созданы
  - права розданы
  - версии приложения, базы и таблиц совпадают

Только это всё равно геморно - слишком много дописывать руками. А Puppet - кривое уё*ще.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Реверсхак SQL"  +/
Сообщение от pavlinux (ok) on 31-Янв-14, 03:34 
>> Мужики, а есть ли в природе фильтр для SQL, который по запросам
>> на чтение создаёт структуру базу и таблицы?
> В общем-то легко, только делай select не таблицы, а своей функции, которая
> проверит и насобачит что угодно. Другой вопрос - а нафига это
> нужно?

Есть блоб, хочет базу, юзер/пароль отловил, структуру базы саипусь реконструировать.

А чо удивительного? Обычный хак методом "Подсунь программе, что она просит"
  

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Реверсхак SQL"  +1 +/
Сообщение от DeadLoco (ok) on 31-Янв-14, 13:14 
> Есть блоб, хочет базу, юзер/пароль отловил, структуру базы саипусь реконструировать.

1. Все ли запросы к базе известны?
2. Нет ли среди запросов вызовов процедур?
3. Нет ли в запросах вызовов юзерских функций?
4. Достоверно ли известно отсутствие в базе триггеров и ивентов?

Пробой по любому из пунктов делает задачу нерешаемой. Ну, то-есть, то, что можно сделать в таких условиях решением назвать не представляется возможным.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "Реверсхак SQL"  +/
Сообщение от name (??) on 31-Янв-14, 15:29 
>>> Мужики, а есть ли в природе фильтр для SQL, который по запросам
>>> на чтение создаёт структуру базу и таблицы?
>> В общем-то легко, только делай select не таблицы, а своей функции, которая
>> проверит и насобачит что угодно. Другой вопрос - а нафига это
>> нужно?
> Есть блоб, хочет базу, юзер/пароль отловил, структуру базы саипусь реконструировать.
> А чо удивительного? Обычный хак методом "Подсунь программе, что она просит"

а выдрать запросы из исполняемого файла никак нельзя?
поиск по файлу все строк с ключевыми словами select/insert/update/where

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

8. "Реверсхак SQL"  +/
Сообщение от ACCA (ok) on 01-Фев-14, 00:44 
> Есть блоб, хочет базу, юзер/пароль отловил, структуру базы саипусь реконструировать.

Включи текстовый лог в SQL сервере, лови SELECT'ы каким-нибудь Perl'ом, создавай через DBI чего не хватает.

Остаётся, правда, вопрос про типы колонок - в запросах они явно не появляются.

Не знаю, как этот блоб, а у меня весь софт сначала читает структуру базы на предмет отслеживания изменений. А поведение некоторых алгоритмов зависит от нарытых индексов. Если в блобе применён какой-нибудь ORM - ожидай подобных граблей.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

9. "Реверсхак SQL"  +/
Сообщение от pavlinux (ok) on 01-Фев-14, 01:34 
>... каким-нибудь Perl'ом, создавай через DBI чего не хватает.

Вооот, вопрос в том и был - Есть ли что-то готовое?  
Потому как запил своих плюшек не окупается.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

5. "Реверсхак SQL"  +/
Сообщение от Аноним (??) on 31-Янв-14, 04:25 
> В общем-то легко, только ....

...
> а нафига это нужно?

ACCA ты перед тем как отвечать точно вопрос читал?

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру