TABLE COMMAND

добавлено: 06 дек 15
понравилось:0
просмотров: 1742
комментов: 2

теги:

Автор: Исраэль.

Какие страшные скрипты вы бы
ни сделали с помощью этой программы,
говорю сразу, что сама программа
ничего не сотрёт и ничего не изменит.
Она только пишет скрипты,
а прогон-это уже к ENTERPRISE MANAGER.

Адрес для скачивания.
https://drive.google.com/file/d/0B2hfyDOpVkzjSzh4R1plWHlIRUE/view?usp=sharing

Раззипте, кликните
table_command.exe
и приятной работы.

В конце статьи есть примечание.
Типа, не скачивайте эту программу на сильный сервер.

Тем, кому портили жизнь те-же проблеммы, что и мне,
и среди них FOREIGN KEY,
может быть, станет любопытно.

Итак. Прибегает взмыленный босс и шипит:
"Hе буду копать, кто наколбасил,
но грант на delete со всех таблиц убрать, немедля".

А тaблиц, за сотню.
И доступ к ним открывали всем известной коммандой

grant select,delete,insert,update on [table] to public

постепенно, по мере создания.
А теперь, за 5 минут, пойди и забери грант у всех таблиц.
Вот с этого начиналась TABLE COMMAND.

Главный экран программы выглядит, примернo, так.
Некоторую конфедециальную информацию
пришлось стереть.

Картинка с другого сайта.


Я, полагаю, что вы , уже поняли, что
экран делится на несколько площадок.

Картинка с другого сайта.

Перечень объектов выглядит так

Картинка с другого сайта.

Т.к. выбранны "TABLES", то в площадке номер 1
появляется список таблиц,

выберите "PROCEDURES появятся процедуры и.т.д

В площадке номер 2,
стабильно показанн список баз.
Строка с активной базой, приобретает серый фон и обозначенна
синей галочкой, стрелка 3.

Соответственно в 1-й площадке, отображенны объекты активной базы.

А теперь покажем, как снять грант на delete,

со всех таблиц.

Картинка с другого сайта.

Я думаю, что вы всё уже поняли.
В верхней площадке, назовём её ШАБЛОН, набранна комманда,
с прикидом на то, что ~ будет замененна на
имя объекта из левого списка.
Добавлю, если он помечен галочкой.
Давится батон "BUILD YOUR SYNTAX"
и искомый скрипт появляется в нижней площадке.
Вы его оттуда копируете в ENTERPICE MANAGER и прогоняете.

TABLE COMMAND ничего в базе сделать не может.
Она READ ONLY.

Если вы добрались до сюда, то я поражаюсь вашему терпенью.
Поговорим о 2 маленькиx CHECK BOX
*NON COMPUTED
*ALL FIELDS
Не будем утомлять друг друга Скрин Шотами,
если вы будете работать с программой, всё станет понятно
очень быстро.

Вы в шаблоне набрали комманду
select * from ~

Ни один из 2 CHECK BOX не зажжён.
Замене подвергнется только ~ на имя таблицы.

Если зажжён
*NON COMPUTED
то вдобавок, звёздочка поменяется на список постоянных-
не вычисляемых полей через запятую.

Если зажжён
*ALL FIELDS
то вместо звёздочки появится список всех полей.

Не стану сейчас объснять, зачем это нужно,
поверьте, что жизнь заставила.
Слово IDENTITY слыхали?
Bот так .

Если из перечня объектов выбранно
DATABASES,
то ~ будет брать себе замены из списка баз данных,
что справа.
Если не вдарятся в мелочи, то всё.

А что за мелочи ?
Видите маленький батончик
object ?

Картинка с другого сайта.

Наберите в шаблоне, некую подстроку,
которая присутствует в имени некоторых
ваших таблиц, в моём случае, я взял LOG,
нажимаем батон
object
и он фильтрует нам список таблиц.

Нажмём батон
column
получим список полей таблиц из левого списка.
Выглядит так себе,
но если скопировать его в EXCEL,
получается недурно.


А это стартовый зкран для подсоединения к серверу.

Картинка с другого сайта.

Можно сэкономить на заполнение этой анкеты.
Откройте экранной кнопкой- ваш приказ пойдёт через NOTEPAD- файл
bondar0.txt, он находится в той же библиотеке , где и программа.
Внесите в новую строчку или поправьте в существующей, координаты вашего сервера,
через TAB, чтоб программа могла понять, где заканчивается
имя сервера и начинается имя базы,
где заканчивается имя базы и начинается имя юзера,
через TAB, после юзера, можно внести и пароль, хотя, лучше этого не делать.
Сохраните изменения.
Нажмите REFRESH для загрузки на экран нового списка,
Пока.
--------------------------------------ПРИМЕЧАНИЕ-----------------------------------------------------
Удалось выявить 3 вида проблемм.
Все в области подсоединения программы к серверу,
в зависимости от того, на какой комп её скачали.

1) У вас обычный компьютер вовсе, не кластерный сервер .
Если на компе стоит только 2014 версия клиента,
программа подсоединяется к серверам, начиная с 2005 версии.
Cерверы 2000, остаются вне игры, программа к ним не подсоединится.
Подсоединение программы к серверу 2000 версии возможно,
если на вашем компе есть клиент не выше 2008 версии.
Даже, если на комп подселён клиент 2014 версии-не страшно.

2) Программа запущенна с -кластерного серверa 2008 версии.
Та-же картина, программа, к серверам 2000 версии не подсоединяется.
Bыше, начиная с 2005, пожалуйста.

3) Кластерный сервер 2014-программа, просто, не работает.
Итого:
Идеальные условия-простой комп с клиентом 2008.
----------------------------------------------------------------------------------------------------------------
Что касается FOREIGN KEY.
Программа даёт 2 скрипта на 1)сбивание и 2)восстановку всех FOREIGN KEY.
Как сказала героиня сериала "Следствие ведут ЗНАТОКИ",
тыча в нос Джигарханяну портативный браунинг:
"У Вас такой игрушечки нет ? Жаль, бывает очень полезно".
Кажется, её играла Раневская.
------------------------------------------------------------------------------------------------------------------

Комментарии


  • Хм. А что-нибудь подобное

    begin
    for cr in (select table_name from user_tables) loop
    execute immediate 'revoke delete on ' || cr.table_name || ' from public';
    end loop;
    end;

    не катит?

  • Большое спасибо за Ваше замечание.
    Можно спросить, на каком языке этот код ?
    Pазобранный вместе с вами случай,
    он самый тривиальный и был выбран в целях иллюстрации.
    Когда речь идёт о двушаговых решеньях,
    например, переезд сервера на другую машину,
    массовый бэкап, потом массовый рестор, потом перезагрузка логинов, когда TABLE COMMAND делает полу-фабрикат, а решающий
    скрипт создаёт ENTERPRICE, всё не так просто, но достаточно быстро.



Необходимо войти на сайт, чтобы оставлять комментарии