정책 기반 관리를 사용하여 서버 관리

정책 기반 관리는 하나 이상의 SQL Server 2008 인스턴스를 관리하는 시스템입니다. SQL Server 정책 관리자는 정책 기반 관리를 사용할 때 SQL Server Management Studio를 통해 정책을 만들어 서버에서 SQL Server 인스턴스, 데이터베이스 또는 기타 SQL Server 개체와 같은 엔터티를 관리합니다.

정책 기반 관리에는 다음과 같은 3가지 구성 요소가 있습니다.

  • 정책 관리

    정책 관리자가 정책을 만듭니다.

  • 명시적 관리

    관리자가 하나 이상의 관리된 대상을 선택하고 해당 대상이 특정 정책을 준수하는지 여부를 명시적으로 확인하거나 해당 대상이 정책을 준수하도록 명시적으로 지정합니다.

  • 평가 모드

    평가 모드에는 4가지 유형이 있으며 이 중 3개는 자동화할 수 있습니다.

    • 요청 시. 이 모드는 사용자가 직접 지정한 경우 정책을 평가합니다.

    • 변경 시: 방지. 이 자동화된 모드에서는 DDL 트리거를 사용하여 정책 위반을 방지합니다.

      중요 정보중요

      nested triggers 서버 구성 옵션이 해제된 경우에는 변경 시: 방지가 올바르게 작동하지 않습니다. 정책 기반 관리는 DDL 트리거를 사용하여 이 평가 모드를 사용하는 정책을 준수하지 않는 DDL 작업을 검색하고 롤백합니다. 정책 기반 관리 DDL 트리거를 제거하거나 중첩 트리거를 해제하면 이 평가 모드가 제대로 작동하지 않거나 오류가 발생할 수 있습니다.

    • 변경 시: 로그만. 이 자동화된 모드에서는 이벤트 알림을 사용하여 관련된 변경이 발생할 때 정책을 평가합니다.

    • 예약 시. 이 자동화된 모드에서는 SQL Server 에이전트 작업을 사용하여 주기적으로 정책을 평가합니다.

    자동화된 정책이 설정되어 있지 않으면 정책 기반 관리가 시스템 성능에 영향을 주지 않습니다.

정책 기반 관리 용어 및 개념

  • 정책 기반 관리에 의해 관리되는 대상
    SQL Server 데이터베이스 엔진 인스턴스, 데이터베이스, 테이블 또는 인덱스와 같이 정책 기반 관리에 의해 관리되는 엔터티입니다. 서버 인스턴스의 모든 대상이 대상 계층을 구성합니다. 대상 집합은 HumanResources 스키마가 소유하는 데이터베이스의 모든 테이블과 같이 대상 필터 집합을 대상 계층에 적용한 결과인 대상 집합입니다.

  • 정책 기반 관리 패싯
    특정 유형의 관리되는 대상에 대한 동작 또는 특징을 모델링하는 논리적 속성 집합입니다. 속성의 수 및 특징은 기본적으로 패싯에 포함되며 패싯 작성자에 의해서만 추가 또는 제거될 수 있습니다. 대상 유형은 하나 이상의 관리 패싯을 구현할 수 있으며 관리 패싯은 하나 이상의 대상 유형에 의해 구현될 수 있습니다. 일부 패싯 속성은 특정 버전에만 적용될 수 있습니다. 예를 들어 노출 영역 구성 패싯의 데이터베이스 메일 속성은 SQL Server 2005 이상 버전에만 적용됩니다.

  • 정책 기반 관리 조건
    관리 패싯과 관련하여 정책 기반 관리에 의해 관리되는 대상의 허용되는 상태 집합을 지정하는 부울 식입니다.

  • 정책 기반 관리 정책
    평가 모드, 대상 필터 및 일정과 같은 정책 기반 관리 조건 및 예상 동작입니다. 정책은 하나의 조건만 포함할 수 있습니다. 정책은 설정하거나 해제할 수 있습니다.

  • 정책 기반 관리 정책 범주
    정책 관리에 유용한 사용자 정의 범주입니다. 사용자는 정책을 서로 다른 정책 범주로 분류할 수 있습니다. 정책은 하나의 정책 범주에만 속합니다. 정책 범주는 데이터베이스 및 서버에 적용됩니다. 데이터베이스 수준에서는 다음 조건이 적용됩니다.

    • 데이터베이스 소유자는 데이터베이스를 정책 범주 집합에 구독할 수 있습니다.

    • 구독한 범주의 정책만 데이터베이스를 제어할 수 있습니다.

    • 모든 데이터베이스는 기본 정책 범주에 암시적으로 구독합니다.

    서버 수준에서는 모든 데이터베이스에 정책 범주를 적용할 수 있습니다.

  • 실제 정책
    대상의 실제 정책은 이 대상을 제어하는 정책입니다. 정책은 다음 조건이 모두 충족되는 경우에만 대상과 관련하여 유효합니다.

    • 정책이 설정되어 있습니다.

    • 대상이 정책의 대상 집합에 속합니다.

    • 대상 또는 대상 상위 항목 중 하나가 이 정책을 포함하는 정책 그룹을 구독합니다.

정책 기반 관리를 통한 문제 해결의 예

정책 기반 관리는 다음 시나리오에서 설명하는 문제를 해결하는 데 유용합니다.

  • 회사 정책으로 인해 데이터베이스 메일 또는 SQL 메일을 설정할 수 없습니다. 이 두 기능의 서버 상태를 확인하기 위해 정책을 만듭니다. 관리자는 서버 상태를 정책과 비교합니다. 서버 상태가 정책을 준수하지 않는 경우 관리자는 구성 모드를 선택하고 정책은 서버 상태가 정책을 준수하도록 지정합니다.

  • AdventureWorks 데이터베이스에는 모든 저장 프로시저가 AW_로 시작해야 한다는 명명 규칙이 있습니다. 이 정책을 적용하기 위해 정책을 만듭니다. 관리자는 이 정책을 테스트하고 정책을 준수하지 않는 저장 프로시저의 목록을 받습니다. 이후 저장 프로시저가 이 명명 규칙을 준수하지 않는 경우 저장 프로시저의 생성 문이 실패합니다.

허용되는 평가 모드

정책 평가 모드는 정책이 사용하는 정책 기반 관리 패싯의 특징에 의해 결정됩니다. 모든 패싯은 요청 시예약 시를 지원합니다. 패싯은 일부 이벤트에서 패싯 상태 변경 내용을 캡처할 수 있는 경우 변경 시: 로그만을 지원하고, 패싯 상태를 변경하는 DDL 문에 대한 트랜잭션 지원이 있는 경우에는 변경 시: 방지를 지원합니다. 이 3개의 실행 모드 중 하나로 자동화된 정책은 설정 및 해제할 수 있습니다.

SQL Server Management Studio의 정책 평가 대화 상자에서는 정책을 실행하는 데 사용할 수 있는 다음 두 가지 옵션을 제공합니다.

  • 평가
    선택한 대상에 따라 정책을 평가합니다.

  • 적용
    가능한 경우 정책을 위반하는 대상에 변경 내용을 적용할 수 있습니다. 일부 대상은 정책 기반 관리를 통해 다시 구성할 수 없습니다. 예를 들어 백업 및 데이터 파일이 개별 장치에 있는지 평가하려는 경우 정책 기반 관리가 이 조건에 대한 위반 사항을 검색할 수 있지만 사용자가 정책 기반 관리를 통해 변경 내용을 적용하여 정책 준수를 강제로 적용할 수는 없습니다.

정책 관리

정책은 Management Studio를 사용하여 만들고 관리합니다. 프로세스에는 다음 단계가 포함됩니다.

  1. 구성할 속성을 포함하는 정책 기반 관리 패싯을 선택합니다.

  2. 관리 패싯의 상태를 지정하는 조건을 정의합니다.

  3. 조건, 대상 집합을 필터링하는 추가 조건 및 평가 모드를 포함하는 정책을 정의합니다.

  4. SQL Server 인스턴스가 정책을 준수하는지 여부를 확인합니다.

실패한 정책의 경우 개체 탐색기에서는 개체 탐색기 트리에서 상위 수준에 있는 대상 및 노드 옆에 빨간색 아이콘으로 표시되는 치명적인 상태 경고를 나타냅니다.

정책 저장소

정책은 msdb 데이터베이스에 저장됩니다. 정책 또는 조건이 변경되면 msdb를 백업해야 합니다. 자세한 내용은 model 및 msdb 데이터베이스 백업에 대한 고려 사항을 참조하십시오.

SQL Server 2008은 SQL Server 인스턴스를 모니터링하는 데 사용할 수 있는 정책을 포함합니다. 기본적으로 이러한 정책은 데이터베이스 엔진에 설치되어 있지 않지만 기본 설치 위치인 C:\Program Files\Microsoft SQL Server\100\Tools\Policies\DatabaseEngine\1033에서 가져올 수 있습니다. 자세한 내용은 방법: 정책 기반 관리 정책 내보내기 및 가져오기를 참조하십시오.

파일/새로 만들기 메뉴를 사용한 다음 파일에 정책을 저장하여 정책을 직접 만들 수 있습니다. 이렇게 하면 데이터베이스 엔진 인스턴스에 연결되어 있지 않는 경우 정책을 만들 수 있습니다.

현재 데이터베이스 엔진 인스턴스에서 평가한 정책의 정책 기록은 msdb 시스템 테이블에서 유지 관리됩니다. 다른 데이터베이스 엔진 인스턴스 또는 Reporting Services나 Analysis Services에 적용된 정책의 정책 기록은 보존되지 않습니다. 자세한 내용은 정책 기반 관리 정책 문제 해결을 참조하십시오.

정책 관리자에서 정책 실패를 알리도록 경고 구성

정책 기반 관리 정책이 3개의 자동화된 평가 모드 중 하나로 실행되지 않는 경우 정책 위반이 발생하면 이벤트 로그에 메시지가 기록됩니다. 이 메시지가 이벤트 로그에 기록되는 경우 알림을 받으려면 메시지를 검색하고 동작을 수행하도록 경고를 만듭니다. 경고는 다음 표에서와 같이 메시지를 검색해야 합니다.

실행 모드

메시지 번호

변경 시: 방지

(자동)

34050

변경 시: 방지

(요청 시)

34051

예약 시

34052

변경 시

34053

정책 기반 관리 오류 메시지에 응답하도록 경고를 설정하려면 다음 항목을 참조하십시오.

경고에 대한 추가 고려 사항

경고에 대한 다음 추가 고려 사항에 유의하십시오.

  • 경고는 설정된 정책에 대해서만 발생합니다. 요청 시 정책을 설정할 수 없으므로 요청 시 실행되는 정책에 대해서는 경고가 발생하지 않습니다.

  • 전자 메일 메시지 보내기와 같은 동작을 수행하려는 경우 메일 계정을 구성해야 합니다. 데이터베이스 메일을 사용하는 것이 좋습니다. 데이터베이스 메일을 설정하는 방법은 방법: 데이터베이스 메일 계정 만들기(Transact-SQL)를 참조하십시오.

  • 경고 보안:

    정책이 요청 시 평가되면 사용자의 보안 컨텍스트에서 실행됩니다. 오류 로그에 작성하려면 사용자가 ALTER TRACE 권한을 가지고 있거나 sysadmin 고정 서버 역할의 멤버여야 합니다. 적은 권한의 사용자가 평가하는 정책은 이벤트 로그에 작성되지 않고 경고를 발생시키지 않습니다.

    자동화된 실행 모드는 sysadmin 역할의 멤버로 실행합니다. 이에 따라 정책을 오류 로그에 기록하고 정책을 통해 경고를 발생시킬 수 있습니다.

보안

정책 기반 관리를 관리하려면 msdb 데이터베이스의 PolicyAdministratorRole 역할 멤버 자격이 필요합니다. 이 역할은 시스템에 있는 모든 정책을 완전히 제어합니다. 이 제어에는 정책 및 조건 생성 및 편집과 정책 설정 및 해제가 포함되어 있습니다.

보안 정보보안 정보

가능한 자격 증명 승격: PolicyAdministratorRole 역할의 사용자는 서버 트리거를 만들고 데이터베이스 엔진 인스턴스 작업에 영향을 줄 수 있는 정책 실행을 예약할 수 있습니다. 예를 들어 PolicyAdministratorRole은 대부분의 개체가 데이터베이스 엔진에서 생성되지 않도록 할 수 있는 정책을 만들 수 있습니다. 이렇게 자격 증명을 승격할 수 있기 때문에 PolicyAdministratorRole 역할은 데이터베이스 엔진 구성을 제어할 수 있도록 신뢰할 수 있는 사용자에게만 부여되어야 합니다.

다음과 같은 보안 원칙이 적용됩니다.

  • 시스템 관리자 또는 데이터베이스 소유자가 데이터베이스를 정책 또는 정책 그룹에 구독할 수 있습니다.

  • PolicyAdministratorRole 역할의 멤버가 정책을 설정 또는 해제할 수 있습니다.

  • PolicyAdministratorRole 멤버가 임시로 실행할 권한이 없는 정책을 만들 수 있습니다. 그러나 이러한 작업은 충분한 권한을 가진 다른 사용자가 정책을 실행할 때 성공할 수 있습니다.

    보안 정보보안 정보

    가능한 자격 증명 승격: PolicyAdministratorRole 역할의 사용자는 ExecuteSql 또는 ExecuteWql 함수를 사용하는 조건이 포함된 정책을 만들 수 있습니다. sysadmin 권한을 가진 사용자가 나중에 이 정책을 실행하면 이 사용자의 sysadmin 권한으로 정책 관리자가 제공하는 Transact-SQL이 실행됩니다.

  • 임시 정책 실행이 사용자의 보안 컨텍스트에서 발생합니다.

  • 예약 시 평가 모드의 정책이 sa 로그인이 소유한 SQL Server 에이전트 작업을 사용합니다.

정책 기반 관리 사용을 위한 고려 사항

정책은 일부 SQL Server 기능의 작동 방식에 영향을 줄 수 있습니다. 예를 들어 변경 데이터 캡처 및 트랜잭션 복제는 모두 인덱스가 없는 systranschemas 테이블을 사용합니다. 모든 테이블이 인덱스를 갖도록 하는 정책을 설정하는 경우 이 정책 준수를 강제 적용하면 이러한 기능이 작동하지 않습니다.