Новость из категории: Информация

SQL Server: поиск по каталогу sql_modules. Продолжение

SQL Server: поиск по каталогу sql_modules. Продолжение

Эффективное решение для поиска определений объектов
Приведенный ниже программный код выполняет задачу, поставленную в первой статье, но с более надежным механизмом поиска в различных базах данных и без ограничения в 8000 байт в sys. comments.

Как отмечалось в предыдущей статье, я создал эту хранимую процедуру в базе данных обслуживания, чтобы поддерживать базу данных master в чистом состоянии. При вызове этой хранимой процедуры необходимо полностью определить ее с именем базы данных. Если вы предпочитаете изменить приведенный выше запрос для размещения в master и вызова из любого контекста базы данных, то сделать это можно, изменив имя базы данных на master и предварив имя хранимой процедуры символами sp_. Поскольку внесены изменения в использование как sys.sql_modules, так и sp foreachdb, я позаботился о том, чтобы добавить два необязательных параметра на случай,если потребуется фильтровать результаты по конкретному типу объектов (возможные значения показаны в приведенной таблице) и включить в круг объектов поиска системные объекты (is_ms_shipped = 1). Вы также можете не указывать значение параметра (NULL), и получите результаты для любого типа объектов с определением, содержащим поисковую строку.

SQL Server: поиск по каталогу sql_modules. Продолжение
Возможные значения типа объекта для параметра @object_type

Возможные значения типа объекта
В таблице приводятся возможные значения типа объекта для параметра @object_type.

Примеры
Пример 1. Нет фильтрации по типу объекта.
SQL Server: поиск по каталогу sql_modules. Продолжение
Варианты фильтрации по типу объекта

В первом примере используется тот же критерий, что и в опубликованной в этом номере статье «Как найти строку в любой хранимой процедуре»: поиск ссылок на backupset. Не выполняется фильтрация по какому-либо типу объекта, и я хочу видеть в результатах исключительно пользовательские объекты. Каждый их трех примеров в коде выше приносит идентичные результаты (экран ниже).

SQL Server: поиск по каталогу sql_modules. Продолжение
Результаты фильтрации по типу объекта

Пример 2. Фильтрация созданных пользователем хранимых процедур.
В этом примере используется тот же критерий, что был упомянут выше, но на этот раз я хочу видеть только системные триггеры; результаты представлены на экране ниже:
EXEC iDBA.dbo.search_sproc_text
'backupset', TR', 1;

SQL Server: поиск по каталогу sql_modules. Продолжение
Фильтрация только созданных пользователем хранимых процедур

Итак, благодаря внимательности читателя мне удалось усовершенствовать программный код и добавить функциональность для фильтрации объектов, предоставленных Microsoft или созданных пользователями, в частности по типу объектов. Таким образом, вы можете взять любой программный код изданной статьи или из Интернета и приспособить его для своих нужд, а также поделиться плодами своих экспериментов с другими членами сообщества на различных интернет-ресурсах.


Вас гораздо больше интересует не поиск данных по каталогу sql_modules, а защита этих данных, т.к. там присутствует важная информация для ЕГАИС? В таком случае, вам следует досконально изучить возможности такого устройства, как USB-токен Jacarta, а также определить, что лучше - рутокен или етокен. Самую исчерпывающую информацию по данной теме вы найдете, к примеру, на hidden-file.livejournal.com.

<<К началу статьи

Рейтинг статьи

Оценка
0/5
голосов: 0
Ваша оценка статье по пятибальной шкале:
 
 
   

Поделиться

Перевести статью:

Похожие новости

Комментарии

Информация

^ Наверх