Предотвращения нежелательных действий с помощью политики

В состав Microsoft SQL Server 2008 входит инструмент Declarative Management Framework (DMF), который может использоваться для предотвращения изменений в системе, несоответствующих стандартам организации.

Допустим, мы хотели бы внедрить стандарт кодирования, в котором все таблицы, вновь созданные для конкретной базы данных должны начинаться с префикса 'tbl''. Создадим политику. Для теста мы создали базу даных с именем "AdventureWorks".

Давайте откроем SQL Server Management Studio, раскроем ветвь Management (Управление), затем развернем ветвь Policy Management (Управление политиками). Щелкним правой кнопкой мыши Condition (Условие) и выберем пункт создать условие New Condition (Создать условие).

 01

В диалоговом окне при создании нового условия, в поле Name (Имя) введите имя "DBA - Table Name Prefix". После ввода имени выберите Facet - "Table", затем наберите выражение "@Name like 'tbl%'" и кликнете "ОК"

02

Напомним, что для тестирования мы хотели применить наши новые политики к базе данных "AdventureWorks". По этой причине мы должны создать новые условия применимые к базе данных "AdventureWorks". Назовем его: "DBA - AdventureWorksDB".

03

Создадим политику. В Object Explorer (Обозревателе объектов) кликните правой кнопкой мыши Policies (Политика) и выберете New Policy (Создать политику).

04

В диалоговом окне Create New Policy (Создание новой политики) в поле Name (Имя) введите "DBA - Table Name Prefix Policy" и выберите условие "DBA - Table Name Prefix". 

05

Укажите таблицы и выберите условие "DBA - AdventureWorksDB" для текущей базы данных.

06

В последнем шаге при создании нашей политики из выпадающего списка выбираем On Change - Prevent (Изменение - запрет) в режиме исполнения. Данное условие позволит запретить создание всех таблиц, кроме тех, которые начинается с префиксом "tbl''. Нажимаем кнопку ОК. 

07

08

Политика создана. Проверим нашу политику, создав таблицу не соответсвующую данному условию, т.е. без префикса "tbl''.

09

Создадим столбец для таблицы и присвоем ей имя "TestTable".

10

Условие выполнилось. SQL Server Management выдал ошибку: "Таблица 'TestTable' не может быть создана. Транзакцияз авершилась в триггере. Выполнение пакета прервано"

11

12

Добавить комментарий


Защитный код
Обновить

Мобильные устройства

Технологические системы

Программирование

Яндекс.Метрика
© 2011-2016 pc-4you.ru Копирование материалов разрешено только с указанием активной ссылки на первоисточник