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

Управление на основе политик — это система управления одним или несколькими экземплярами SQL Server 2008. Если администраторы политик SQL Server используют управление на основе политик, то они применяют среду SQL Server Management Studio для создания политик управления сущностями на сервере, например экземпляром SQL Server, базами данных или другими объектами SQL Server.

Управление на основе политик включает три следующих компонента.

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

    Администраторы политик создают политики.

  • Явное администрирование

    Администраторы выбирают одну или несколько управляемых целей и выполняют явную проверку соответствия целей определенной политике или выполняют явную настройку целей для соответствия политике.

  • Режимы оценки

    Существует четыре режима оценки, три из которых могут быть автоматизированы.

    • По запросу. В этом режиме политика непосредственно указывается пользователем.

    • При изменении: запретить. В этом автоматизированном режиме для предотвращения нарушения политики используются триггеры DDL.

      Важное примечаниеВажно!

      Если параметр конфигурации сервера «nested triggers» отключен, режим При изменении — запретить не будет правильно работать. Управление на основе политик с помощью триггеров DDL определяет и выполняет откат DDL-операций, не соответствующих политикам, использующим режим оценки. Удаление триггеров DDL управления на основе политик или отключение вложенных триггеров приведет к отказу этого режима оценки или к непредвиденным результатам.

    • При изменении — только внесение в журнал. В этом автоматизированном режиме используется уведомление о событии для определения политики при возникновении соответствующего изменения.

    • По расписанию. В этом автоматизированном режиме для периодического определения политики используется задание агента SQL Server.

    Если автоматизированные политики не включены, то управление на основе политик не оказывает влияния на производительность системы.

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

  • Цель управления на основе политик
    Сущности, управляемые на основе политик, например: экземпляр компонента SQL Server Database Engine, база данных, таблица, или индекс. Все цели на экземпляре сервера формируют иерархию целей. Набор целей — это набор целей, являющихся результатом применения набора фильтров к иерархии целей, например: все таблицы базы данных, владельцем которой является схема HumanResources.

  • Аспект управления на основе политик
    Набор логических свойств, моделирующих поведение или характеристики определенных типов целей управления. Количество и характеристики свойств встраиваются в аспект и могут быть добавлены или удалены только создателем аспекта. Тип цели может реализовать один или несколько аспектов управления, а аспект управления соответственно может быть реализован одним или несколькими типами цели. Некоторые свойства аспекта могут применяться только в определенной версии. Например, свойство Database Mail аспекта настройки контактной зоны применяется только в SQL Server 2005 и более последних версиях.

  • Условие управления на основе политик
    Логическое выражение, определяющее набор разрешенных состояний целей управления на основе политик, с точки зрения аспекта управления.

  • Политика управления на основе политик
    Условие управления на основе политик и ожидаемое поведение, например режим оценки, целевые фильтры и расписание. Политика может содержать только одно условие. Политики могут быть включены или отключены.

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

    • Владельцы базы данных могут подписать базу данных набором категорий политики.

    • Только политики из подписанных категорий могут управлять базой данных.

    • Все базы данных неявно подписаны категорией политики по умолчанию.

    На уровне сервера категории политик могут применяться ко всем базам данных.

  • Действующая политика
    Действующими политиками цели являются те политики, которые управляют этой целью. Политика действительна по отношению к цели только при выполнении следующих условий.

    • Политика включена.

    • Цель принадлежит к набору целей политики.

    • Цель или один из ее предков подписан к группе политики, содержащей эту политику.

Примеры решений проблем с помощью управления на основе политик

Управление на основе политик может быть полезным при решении проблем, представленных в следующих сценариях.

  • Политика компании запрещает включение компонента Database Mail или службы SQL Mail. Политика создается для проверки состояния этих двух компонентов сервера. Администратор сравнивает состояние сервера с политикой. Если состояние сервера не находится в соответствии, администратор выбирает режим настройки и политика приводит состояние сервера в соответствие.

  • База данных AdventureWorks имеет соглашение об именах, требующее, чтобы все хранимые процедуры начинались с символов AW_. Политика создается для обеспечения этой политики. При проверке этой политики администратор получает список хранимых процедур, не соответствующих условию. Если будущие хранимые процедуры не будут соответствовать соглашению об именах, создание инструкций для них завершится ошибкой.

Разрешенные режимы оценки

Режимы оценки политики определяются характеристиками аспекта управления на основе политик, используемого этой политикой. Все аспекты поддерживают режимы По запросу и По расписанию. Аспекты поддерживают режим При изменении — только внесение в журнал, если изменение состояния аспекта отслеживается некоторыми событиями. Аспекты поддерживают режим При изменении — запретить, если для DDL-инструкций существует поддержка транзакций, изменяющая состояние аспекта. Политики, автоматизированные с помощью одного из этих трех режимов выполнения, могут быть включены или отключены.

В среде SQL Server Management Studio диалоговое окно Вычисление политик содержит два параметра для выполнения политики.

  • Вычислить
    Вычисляет политику для выбранных целей.

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

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

Создание и управление политиками производится в среде Management Studio. Этот процесс состоит из следующих шагов.

  1. Выбор аспекта управления на основе политик, содержащего настраиваемые свойства.

  2. Указание условия, определяющего состояние аспекта управления.

  3. Указание политики, содержащей условие, дополнительные условия, фильтрующие наборы целей и режим оценки.

  4. Проверка соответствия экземпляра SQL Server политике.

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

Хранение политики

Политики хранятся в базе данных msdb. После изменения политики или условия необходимо выполнить резервное копирование базы данных msdb. Дополнительные сведения см. в разделе Вопросы резервного копирования баз данных model и msdb.

SQL Server 2008 включает политики, которые можно использовать для наблюдения за экземпляром SQL Server. По умолчанию эти политики не устанавливаются в Database Engine, однако их можно импортировать из места установки по умолчанию — «C:\Program Files\Microsoft SQL Server\100\Tools\Policies\DatabaseEngine\1033». Дополнительные сведения см. в разделе Как экспортировать и импортировать политику управления на основе политик.

Можно создавать политики напрямую, при помощи меню Файл/Создать, и сохранять их в файл. Это позволяет создавать политики при отсутствии подключения к экземпляру компонента Database Engine.

Журнал политик, вычисленных в текущем экземпляре компонента Database Engine, поддерживается в системных таблицах базы данных msdb. Журнал политик, примененных к другим экземплярам компонента Database Engine, к службам Reporting Services или службам Analysis Services, не сохраняется. Дополнительные сведения см. в разделе Диагностика политик в управлении на основе политик.

Настройка предупреждений для уведомления администраторов политик об ошибках политик

Если при выполнении политик в одном из трех автоматизированных режимов оценки возникает нарушение политики, то сообщение об этом записывается в журнал событий. Для уведомления о записи этого сообщения в журнал событий можно создать предупреждение, определяющее сообщение и выполняющее действие. Предупреждение должно определять сообщения, как показано в следующей таблице.

Режим выполнения

Номер сообщения

При изменении: запретить

(если авто)

34050

При изменении: запретить

(если по запросу)

34051

Согласно расписанию

34052

При изменении

34053

Сведения о настройке предупреждений в ответ на сообщения об ошибках управления на основе политик см. в следующих разделах:

Дополнительные сведения о предупреждениях

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

  • Предупреждения формируются только для включенных политик. Так как политики По запросу нельзя включить, то для них предупреждения не формируются.

  • Если действие, которое необходимо предпринять, включает отправку сообщения по электронной почте, необходимо настроить учетную запись электронной почты. Рекомендуется использовать компонент Database Mail. Дополнительные сведения о настройке компонента Database Mail см. в разделе Как создавать учетные записи для компонента Database Mail (язык Transact-SQL).

  • Безопасность предупреждений.

    Когда политики вычисляются по запросу, они выполняются в контексте безопасности пользователя. Для записи в журнал ошибок пользователь должен иметь разрешения ALTER TRACE или быть членом предопределенной роли сервера sysadmin. Политики, вычисляемые пользователем, обладающим меньшими правами доступа, не регистрируются в журнале событий и не формируют предупреждений.

    Автоматизированные режимы выполнения работают от имени члена роли sysadmin. Это позволяет политике регистрировать ошибки в журнале ошибок и формировать предупреждение.

Безопасность

Для администрирования управлением на основе политик необходимо членство в роли PolicyAdministratorRole в базе данных msdb. Эта роль предоставляет полный контроль над всеми политиками системы. Контроль включает в себя создание и изменение политик и условий, а также включение и отключение политик.

Примечание по безопасностиПримечание по безопасности

Возможное повышение прав учетных данных. Пользователи с ролью PolicyAdministratorRole могут создавать триггеры сервера и планировать выполнение политик, влияющих на работу экземпляра компонента Database Engine. Например, роль PolicyAdministratorRole может создать политику, которая может запретить создание большинства объектов в компоненте Database Engine. Вследствие возможного повышения прав учетных данных роль PolicyAdministratorRole должна предоставляться только пользователям, имеющим право изменять конфигурацию компонента Database Engine.

Применяются следующие принципы безопасности.

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

  • Члены роли PolicyAdministratorRole могут включать или отключать политики.

  • Члены роли PolicyAdministratorRole могут создавать политики, на нерегламентированное выполнение которых у них нет разрешения, но которые могут запускать другие пользователи, обладающие достаточными разрешениями.

    Примечание по безопасностиПримечание по безопасности

    Возможное повышение прав учетных данных. Пользователи, являющиеся членами роли PolicyAdministratorRole, могут создавать политики, которые содержат условия, использующие функции ExecuteSql и ExecuteWql. Если в дальнейшем эту политику выполняет пользователь, имеющий разрешения sysadmin, поставляемый администратором политики код на языке Transact-SQL будет выполняться с разрешением sysadmin текущего пользователя.

  • Нерегламентированное выполнение политики происходит в контексте безопасности пользователя.

  • Вычисление политик в режиме оценки По расписанию производится с помощью заданий агента SQL Server, принадлежащих имени входа sa.

Замечания по использованию управления на основе политик

Имейте в виду, что политики могут повлиять на работу некоторых функций SQL Server. Например, система отслеживания измененных данных и репликация транзакций используют таблицу systranschemas, не имеющую индекса. При включении политики, согласно которой все таблицы должны иметь индекс, принудительная реализация этого условия приведет к отказу этой функции.