Поделиться через


Занятие 2. Создание и применение политики стандартов именования

Область применения: SQL Server

Некоторые типы политик управления на основе политик могут создавать триггеры для обеспечения будущего соответствия с политикой. На этом занятии создается политика, обеспечивающая стандарт именования таблиц. Затем для ее проверки выполняется попытка создания таблицы, нарушающей политику.

Необходимые компоненты

Для работы с этим руководством требуется среда SQL Server Management Studio и доступ к серверу SQL Server.

Создание базы данных Finance

  1. В Management Studio откройте окно запроса и выполните следующую инструкцию:

    CREATE DATABASE Finance ;  
    GO  
    
  2. В обозревателе объектов щелкните Базы данныхи нажмите клавишу F5 для обновления списка баз данных.

Создание условия "Таблицы Finance"

  1. В обозревателе объектов раскройте узлы Управлениеи Управление политиками, щелкните правой кнопкой мыши узел Условияи выберите пункт Создать условие.

Новое условие

  1. В диалоговом окне Создание нового условия в поле Имя введите Finance Tables.

    1. В списке Аспект выберите Многокомпонентное имя.
    2. В области "Выражение" в поле "Поле" выберите @Name; в поле "Оператор" выберите "Нравится", а в поле "Значение" введите'fintbl%', чтобы принудительно начать все имена таблиц с буквы fintbl.
    3. На странице Описание введите Имена таблиц Finance должны начинаться с букв "fintbl", а затем нажмите кнопку ОК для создания условия.

    Условие

Создание политики имен Finance

  1. В обозревателе объектов щелкните правой кнопкой мыши папку Политикии выберите в контекстном меню пункт Создать политику.

Новая политика

  1. В диалоговом окне Создание новой политики в поле Имя введите Finance Name.

    1. В списке Проверить условия выберите пункт Таблицы Finance. Он находится в области Многокомпонентное имя .
    2. В области Применить к отображается список объектов баз данных, к которым можно применить эту политику. Установите флажок Каждая таблица.
    3. Установите флажок Включено . (Флажок Включено не применяется к политикам По запросу .)
    4. В списке Режим оценки выберите При изменении: запретить. Это обеспечит создание политикой триггера базы данных в базе данных Finance.
    5. В списке Ограничение сервера выберите пункт Нет.
    6. На странице Описание добавьте следующее описание: "Имена таблиц в базе данных Finance должны содержать fintbl%".
    7. Вернитесь на страницу Общее, а затем в области Каждая база данных разверните раздел Каждые и нажмите Создать условие.

    Создание политики имен Finance

  2. В диалоговом окне Создание нового условия в поле Имя введите База данных Finance.

    1. В окне Выражение добавьте в выражение @Name = 'Finance' и нажмите кнопку ОК, чтобы закрыть страницу условия.

    Создание условия базы данных Finance

    Примечание.

    Возможно, потребуется выйти из поля Значение для включения кнопки ОК .

  3. Нажмите ОК.

Создание категории политики Finance

  1. В обозревателе объектов разверните узел Управление, щелкните правой кнопкой мыши узел Управление политикамии выберите пункт Управление категориями.

Управление категориями

  1. В диалоговом окне Управление категориями политик на вкладке Имявведите Finance в пустое поле и снимите флажок Сделать подписки базы данных обязательными. ПараметрСделать подписки базы данных обязательными принудительно подписывает каждую базу данных в экземпляре на политики, которые относятся к данной категории политик. В рамках этого занятия только база данных Finance должна быть подписана на политику "Finance Name".

    Управление категориями политики

  2. Нажмите ОК.

Подписка на категорию политик Finance

  1. В обозревателе объектов разверните узел Базы данных, щелкните правой кнопкой мыши Finance, наведите указатель на пункт Политикии выберите пункт Категории.

Категории политик Finance

  1. Установите флажок Есть подписка для категории Finance .

Подписка на политику Finance

  1. Нажмите ОК.

Тестирование принудительного применения политики названий финансов

  1. В Management Studio откройте окно запроса. Выполните приведенные ниже инструкции, которые попытаются создать таблицу, нарушающую политику Имена финансов . Таблица нарушает политику, так как ее имя не начинается с букв fintbl.

    USE Finance ;  
    GO  
    CREATE TABLE NewTable  
    (Col1 int) ;  
    GO    
    

    Обратите внимание, что политика предотвращает создание таблицы и возвращает информационное сообщение, содержащее имя политики.

  Policy 'Finance Name' has been violated by 'SQLSERVER:\SQL\SQL\SQL2017\Databases\Finance\Tables\dbo.NewTable'.
  This transaction will be rolled back.
  Policy condition: '@Name LIKE 'fintbl%''
  Policy description: 'Tables names in the Finance database must contain 'fintbl%''.
  Additional help: '' : ''
  Statement: 'CREATE TABLE NewTable  
      (Col1 int)'.
  Msg 515, Level 16, State 2, Procedure msdb.sys.sp_syspolicy_execute_policy, Line 69 [Batch Start Line 2]
  Cannot insert the value NULL into column 'target_query_expression', table 'msdb.dbo.syspolicy_policy_execution_history_details_internal'; column does not allow nulls. INSERT fails.
  The statement has been terminated.
  1. Для предоставления достоверного имени измените код, как указано ниже, и снова запустите инструкцию.

    USE Finance ;  
    GO  
    CREATE TABLE fintblNewTable  
    (Col1 int) ;  
    GO    
    

    В это время создается таблица.

Применение политики ко всему серверу

  1. В данный момент на категорию политики финансов подписана только база данных Finance. В большинстве случаев легче применить категорию политики ко всему серверу. В обозревателе объектов разверните узел Управление, щелкните правой кнопкой мыши узел Управление политикамии выберите пункт Управление категориями.

  2. Найдите категорию Finance в диалоговом окне Управление категориями политик и установите флажок Сделать подписки базы данных обязательными для категории Finance.

  3. Нажмите ОК. Теперь категория Finance применяется ко всем базам данных, но созданное условие ограничивает политику имен финансов для базы данных Finance. Это показывает то, как используются сложные сочетания условий для целевых политик для их правильного применения к нескольким серверам.

Итоги

В этом учебнике показано создание условий управления на основе политик, политик и групп политик, а также применение фильтров и проверка соответствия целей управления на основе политик.

Следующий

Данный учебник завершен. Чтобы вернуться к началу, обратитесь к статье Учебник. Администрирование серверов с помощью управления на основе политик.

Список учебников см. в разделе Учебные материалы по SQL Server 2016.

См. также

Администрирование серверов с помощью управления на основе политик