Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
Некоторые типы политик управления на основе политик могут создавать триггеры для обеспечения будущего соответствия с политикой. На этом занятии создается политика, обеспечивающая стандарт именования таблиц. Затем для ее проверки выполняется попытка создания таблицы, нарушающей политику.
Предварительные условия
Для работы с этим руководством требуется среда SQL Server Management Studio и доступ к серверу SQL Server.
- Установите SQL Server Management Studio.
- Установите выпуск SQL Server 2017 Developer Edition.
Создание базы данных Finance
В Management Studio откройте окно запроса и выполните следующую инструкцию:
CREATE DATABASE Finance ; GOВ обозревателе объектов щелкните Базы данныхи нажмите клавишу F5 для обновления списка баз данных.
Создание условия для таблиц "Finance"
- В обозревателе объектов раскройте узлы Управлениеи Управление политиками, щелкните правой кнопкой мыши узел Условияи выберите пункт Создать условие.
В диалоговом окне Создание нового условия в поле Имя введите Finance Tables.
- В списке Фасет выберите Многокомпонентное имя.
- В области Выражение в поле "Поле" выберите @Name; в поле "Оператор" выберите Like; а в поле "Значение" введите
'fintbl%', чтобы принудительно начать все имена таблиц с букв fintbl. - На странице Описание введите Имена таблиц Finance должны начинаться с букв "fintbl", а затем нажмите кнопку ОК для создания условия.
Создание политики имен Finance
- В обозревателе объектов щелкните правой кнопкой мыши папку Политикии выберите в контекстном меню пункт Создать политику.
В диалоговом окне Создание новой политики в поле Имя введите Finance Name.
- В списке Проверка условий выберите пункт Финансовые таблицы. Он находится в области Многокомпонентное имя .
- В области Против отображается список объектов баз данных, к которым можно применить эту политику. Установите флажок Каждая таблица.
- Выберите список Включено. (Флажок Включено не применяется к политикам По запросу .)
- В списке Режим оценки выберите При изменении: запретить. Это будет применять политику посредством создания триггера в базе данных Finance.
- В списке Ограничение сервера выберите пункт Нет.
- На странице Описание добавьте следующее описание: "Имена таблиц в базе данных Finance должны содержать fintbl%".
- Вернитесь на страницу Общее, а затем в области Каждая база данных разверните раздел Каждые и нажмите Создать условие.
В диалоговом окне Создание нового условия в поле Имя введите База данных Finance.
- В окне Выражение добавьте в выражение @Name = 'Finance', затем нажмите кнопку ОК, чтобы закрыть страницу условия.
Примечание.
Возможно, потребуется выйти из поля Значение для включения кнопки ОК .
Нажмите ОК.
Создайте категорию политики Финансы
- В обозревателе объектов разверните узел Управление, щелкните правой кнопкой мыши узел Управление политикамии выберите пункт Управление категориями.
В диалоговом окне Управление категориями политик на вкладке Имявведите Finance в пустое поле и снимите флажок Сделать подписки базы данных обязательными. ПараметрСделать подписки базы данных обязательными принудительно подписывает каждую базу данных в экземпляре на политики, которые относятся к данной категории политик. В рамках этого урока только база данных "Finance" должна подписываться на политику "Finance Name".
Нажмите ОК.
Подписаться на категорию политик в области финансов
- В обозревателе объектов разверните узел Базы данных, щелкните правой кнопкой мыши Finance, наведите указатель на пункт Политикии выберите пункт Категории.
- Установите флажок Есть подписка для категории Finance .
- Нажмите ОК.
Тестирование применения политики именования в финансовой сфере
В Management Studio откройте окно запроса. Выполните приведенные ниже запросы, которые пытаются создать таблицу, нарушающую политику Finance Name. Таблица нарушает политику, так как ее имя не начинается с букв 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.
Для предоставления достоверного имени измените код, как указано ниже, и снова запустите инструкцию.
USE Finance ; GO CREATE TABLE fintblNewTable (Col1 int) ; GOВ это время создается таблица.
Применение политики ко всему серверу
В данный момент на категорию политики финансов подписана только база данных Finance. В большинстве случаев легче применить категорию политики ко всему серверу. В обозревателе объектов разверните узел Управление, щелкните правой кнопкой мыши узел Управление политикамии выберите пункт Управление категориями.
Найдите категорию Finance в диалоговом окне Управление категориями политик и установите флажок Сделать подписки базы данных обязательными для категории Finance.
Нажмите ОК. Теперь категория "Finance" применяется ко всем базам данных, но условие, которое вы создали, ограничивает политику именования "Finance" только для базы данных "Finance". Это показывает, как можно использовать сложные сочетания условий для того, чтобы направлять политики так, чтобы они правильно применялись на множестве серверов.
Итоги
В этом учебнике показано создание условий управления на основе политик, политик и групп политик, а также применение фильтров и проверка соответствия целей управления на основе политик.
Следующий
Данный курс завершён. Чтобы вернуться к началу, обратитесь к статье Учебник. Администрирование серверов с помощью управления на основе политик.
Список учебников см. в разделе Учебные материалы по SQL Server 2016.
См. также
Администрирование серверов с помощью управления на основе политик