Welcome to TechNet Blogs Sign in | Join | Help

СТР 3: Declarative Management framework. Пример

Возьмем простую задачу: необходимо запретить все имена таблиц, которые начинаются на Test.

Для этого необходимо создать  условие, которое будет проверять: имя таблицы не равно  «Test%».

Для этого в Management Studio:

1. Идем  в  Policy Management, правой кнопкой кликаем на Conditions и говорим: New Condition.

2. В открывшемся окне  Create New Condition в поле Name говорим: Table Name Condition .

3. В поле Facet выбираем Multipart Name Facet.

4.  В поле задания условия (Expression) в Field выбираем: Name;

В поле Operator:  NOT Like;  в поле Value пишем Test%

В поле описания можно сказать: The table name should not start with Test

Далее необходимо создать политику:

1.       В обозревателе  Object Explorer кликаем правой кнопкой на Policies и выбираем New Policy.

2.       В окне Create New Policy выбираем имя для политики, типа: Table Name Policy,

3.       Ставим галочку  на «Enabled»

4.        В поле Condition box выбираем Table Name Condition.

5.       Группу можно оставить Default”.

6.       В поле Applies to: выбрать из всего списка Server/Database/Table.

7.       В описании режима исполнения: Enforce

 

Теперь  в  QA создаем запрос:

create table Test (Name nvarchar (10))

 

Policy 'Table Name Policy' has been violated by 'Server/Database[@Name='master']/Table[@Name='Test' and @Schema='dbo']'. This transaction will be rolled back.

Msg 3609, Level 16, State 1, Procedure sp_syspolicy_dispatch_event, Line 88

The transaction ended in the trigger. The batch has been aborted.

 

Что и требовалось доказать.

Создание же таблиц с другими процедурами проходит нормально.

P.S прежде чем попробовать DMF обратите внимание: был найден  баг в СТР, который может свести на нет все попытки запуска примера. Как это дело обойти описано тут:

http://sqlserver-qa.net/blogs/sql2008/archive/2007/06/10/653.aspx

 

Published Wednesday, June 20, 2007 1:40 PM by MOCKAlb
Filed under:

Comments

No Comments

Anonymous comments are disabled
 
Page view tracker