The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Реверсхак SQL, !*! pavlinux, 30-Янв-14, 20:28  [смотреть все]
Мужики, а есть ли в природе фильтр для SQL, который по запросам на чтение
создаёт структуру базу и таблицы?  

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

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

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

  • Реверсхак SQL, !*! asavah, 21:57 , 30-Янв-14 (1)
    > Мужики, а есть ли в природе фильтр для 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        • Реверсхак SQL, !*! pavlinux, 01:34 , 01-Фев-14 (9)
          >... каким-нибудь Perl'ом, создавай через DBI чего не хватает.

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

    • Реверсхак SQL, !*! Аноним, 04:25 , 31-Янв-14 (5)
      > В общем-то легко, только ....

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

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




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

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