다음을 통해 공유


네임스페이스 생성 시 보안 설정

네임스페이스를 만드는 MOF(Managed Object Format) 파일은 NamespaceSecuritySDDL 한정자를 SDDL(보안 설명자 정의 언어) 형식의 보안 설명자를 포함하여 네임스페이스에 대한 보안 설명자 정의할 수도 있습니다.

NamespaceSecuritySDDL 사용하여 네임스페이스를 보호할 수 있습니다. 간단한 MOF 파일에서 이 한정자를 사용하여 기존 네임스페이스의 보안 설명자를 변경할 수도 있습니다. SDDL 문자열은 WMI에 의해 처리되어 네임스페이스 보안을 설정하지만 문자열로 저장되지는 않습니다. 보안 설명자를 지정하지 않으면 기본 보안이 사용됩니다. 자세한 내용은 네임스페이스 보안 설명자설정을 참조하세요.

다음 절차에서는 root\MyNamespace 네임스페이스에 대한 보안 설명자를 설정합니다. SDDL 문자열은 소유자와 그룹을 인증된 사용자로 설정하고 자식 네임스페이스에서 상속되는 DACL(임의 액세스 제어 목록) 지정합니다. DACL을 사용하면 사용자가 데이터를 읽고, 메서드를 실행하고, 공급자 클래스에 데이터를 쓰고, 원격 액세스를 사용할 수 있습니다. WBEM_ENABLE, WBEM_METHOD_EXECUTE, WBEM_WRITE_PROVIDER, WBEM_REMOTE_ACCESS. 자세한 내용은 WMI 네임스페이스대한 액세스를 참조하세요.

네임스페이스 DACL 설정하려면

  1. MOF(관리 개체 형식) 파일을 만들거나 네임스페이스를 정의하는 기존 MOF 파일을 수정하여 NamespaceSecuritySDDL 한정자를 SDDL 문자열로 추가합니다.

    다음 코드 예제에서는 수정할 네임스페이스가 root\MyNamespace이고 파일 이름이 MyNamespace_security.mof임을 보여 냅니다.

    #pragma autorecover
    #pragma namespace("\\\\.\\root")
    [NamespaceSecuritySDDL ("O:BAG:BAD:(A;CI;0x60003;;;WD)")]
    Instance of __Namespace
    {
      Name = "MyNamespace";
    };
    
  2. SDDL 문자열은 대/소문자를 구분합니다. 문자를 대문자로 표시해야 합니다.

    다음 코드 예제에서는 SDDL 문자열의 문자 "o" 및 "g"를 소문자로 표시하고 Mofcomp.exe 오류를 반환합니다.

    #pragma autorecover
    #pragma namespace("\\\\.\\root")
    [NamespaceSecuritySDDL("o:BAg:BAD:(A;CI;0x60003;;;WD)")] 
    Instance of __Namespace
    {
      Name = "MyNamespace";
    };
    
  3. Mofcomp.exe 실행하여 MOF 파일을 컴파일합니다.

    c:\mofcomp MyNamespace_security.mof

    C++에서 IMoFCompiler 메서드를 사용합니다.

  4. 네임스페이스 DACL을 설정하지 못한 경우 다음 오류 메시지를 고려합니다.

    오류 묘사
    WBEM_E_INVALID_PARAMETER (잘못된 매개변수) 상속된 DACL이 없습니다. 또는 호출자가 부모 네임스페이스의 DACL 또는 SD를 위반했습니다.
    접근 거부됨 (WBEM_E_ACCESS_DENIED) 호출자에게 MOF에서 SDDL을 업데이트할 수 있는 권한이 없습니다.

     

네임스페이스 보안 설명자 설정

네임스페이스 액세스 권한 상수

네임스페이스 ACE 플래그 상수

보안 개체에 대한 액세스 보안 변경