Материал: Методические указания к лабораторным работам № 6–9 по дисциплинам «Основы построения защищенных СУБД», «Безопасность систем баз данных». Плотников Д.Г

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Собственно выполняемые действия триггера задаются в виде блока на языке Transact-SQL.

Втеле триггера можно обращаться к данным из двух псевдотаблиц inserted и deleted, которые имеют такую же структуру, как и родительская таблица триггера, и содержат новые и старые значения модифицированных строк соответственно.

ВMSSQL триггеры поддерживают только одну область видимости - выполнение триггера происходит только один раз для каждого оператора модификации таблицы.

Контрольные вопросы

1.В чем разница между sys и

INFORMATION_SCHEMA?

2.Как обеспечить максимальную переносимость скриптов, использующих метаданные, на другие SQLориентированные СУБД?

Дополнительные вопросы

1.Исправить ошибки в подготовленных выборках.

2.Выбрать имена баз данных и файлы, соответствующие им на диске.

3.Выбрать названия ролей и имена пользователей, входящих в эти роли.

4.Вывести текст запроса, создающего какое-либо системное представление.

5.Составить различные другие выборки по заданию преподавателей.

19

Лабораторная работа № 8 Выборка метаданных

Цель работы

Ознакомление со способами хранения служебной информации в СУБД Microsoft SQL Server; освоение способов выборки метаданных.

Темы для предварительной проработки

• Состав и структура представлений словаря / системного каталога.

Подготовка к работе

•По приведенной справочной информации изучить Состав и структура представлений словаря Microsoft SQL

Server.

•Выполнить следующие запросы на выборку сведений о таблицах, представлениях, триггерах, созданных в процессе выполнения лабораторного практикума:

1. выбрать имена всех таблиц, созданных назначенным пользователем базы данных (например, пользователем s33 для базы d33)

2. выбрать имя таблицы, имя столбца таблицы, признак того, допускает ли данный столбец null-значения, название типа данных столбца таблицы, размер этого типа данных - для всех таблиц, созданных назначенным пользователем базы данных и всех их столбцов

3. выбрать название ограничения целостности (первичные и внешние ключи), имя таблицы, в которой оно находится, признак того, что это за ограничение ('PK' для первичного ключа и 'F' для

20

внешнего) - для всех ограничений целостности, созданных назначенным пользователем базы данных

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

5.выбрать название представления, SQL-запрос, создающий это представление - для всех представлений, созданных назначенным пользователем базы данных

6.выбрать название триггера, имя таблицы, для которой определен триггер - для всех триггеров, созданных

назначенным пользователем базы данных

• Составить SQL-скрипт для выполнения созданных запросов.

Выполнение работы

•Запустить Microsoft Query Analyzer, соединиться

слокальной базой данных.

•В среде Microsoft Query Analyzer выполнить подготовленные скрипты.

•Сохранить результаты выполнения.

•Закончить работу с Microsoft Query Analyzer.

Содержание отчета

•Протокол работы в среде Microsoft SQL Server.

•Краткие выводы о навыках, приобретенных в ходе выполнения работы.

21

Теоретические сведения

Системный каталог и словарь данных

Каждая СУБД сохраняет метаданные (данные о данных) - детальную информацию обо всех объектах системы. Примерами таких объектов могут служить таблицы, представления, ограничения целостности, триггеры, правила безопасности и т.д. В разных СУБД применяются даже разные названия для метаданных - системный каталог в DB2 или словарь данных (Oracle). Однако общим свойством всех современных реляционных СУБД является то, что каталог/словарь сам состоит из таблиц. В результате пользователь может обращаться к метаданным так же, как и к своим данным - используя оператор SQL SELECT. Изменения же в каталоге/словаре производятся автоматически при выполнении пользователем операторов SQL, изменяющих состояние объектов базы данных.

Точнее, пользователь «видит» не сами таблицы каталога/словаря, а созданные на их базе представления, которые он, конечно же, не может изменять.

Состав и структура каталога/словаря очень различна для различных СУБД.

В Oracle представления словаря данных в большинстве своем доступны любому пользователю с привилегией CREATE SESSION. Существуют три группы представлений системного

каталога:

 

 

представления

с

префиксом DBA_ содержат

информацию обо всех объектах базы данных (эти

представления доступны только пользователям с

привилегией SELECT_ANY_TABLE;

представления

с

префиксом ALL_ содержат

информацию обо всех объектах, доступных данному

пользователю;

 

 

представления

с

префиксом USER_ содержат

информацию обо всех объектах, владельцем которых является данный пользователь.

22

В DB2 представления системного каталога определены в схеме SYSCAT и привилегия выборки из них предоставлена группе PUBLIC.

Несмотря на различия, мы попытались свести некоторые общие свойства представлений метаданных в табл. 4. В ней показаны далеко не все представления метаданных и далеко не все столбцы этих представлений. Для Oracle мы ограничились только представлениями группы ALL_. Для DB2 мы опускаем имя схемы - SYSCAT.

23

Источник: https://studfile.net/preview/16563472/