보안 개체에 대한 액세스 보안 변경
프린터, 서비스, 레지스트리 키, DCOM 애플리케이션 및 WMI 네임스페이스는 보안 개체입니다. 보안 개체에 대한 액세스는 액세스 권한이 있는 사용자를 지정하는 보안 설명자를 이용해 보호합니다. Windows Vista 이상 버전에서 많은 보안 개체에는 보안 설명자를 가져오거나 설정하는 메서드가 있습니다. 적절한 사용 권한이 있다면 보안 개체에 대한 보안 설명자를 읽거나 변경할 수 있습니다. 이러한 메서드를 사용하면 프린터, 서비스, WMI 네임스페이스 또는 기타 개체에 액세스할 수 있는 사용자 계정 또는 그룹을 제어할 수 있습니다. 보안 설명자와 WMI에서 보안 설명자를 사용하는 방법에 대한 자세한 내용은 WMI 보안 개체에 대한 액세스를 참조하세요.
이 항목에서 다루는 섹션은 다음과 같습니다.
개체 및 보안 설명자 메서드
다음 목록에는 보안 개체가 사용자에게 보안 설명자를 읽거나 변경할 권한을 부여하는 메서드가 포함되어 있습니다.
WMI 네임스페이스
공급자는 특정 그룹만 WMI 네임스페이스의 데이터에 액세스할 수 있게 하는 보안을 설정할 수 있습니다. 네임스페이스 보안은 __SystemSecurity 클래스의 메서드를 이용해 제어합니다. Windows Vista부터 GetSecurityDescriptor 및 SetSecurityDescriptor 메서드는 __SecurityDescriptor 개체를 반환하고 씁니다. 자세한 내용은 네임스페이스 보안 설명자 설정을 참조하세요.
레지스트리 키
Windows Vista 이상 버전에서는 권한이 없는 사용자가 변경할 수 없도록 레지스트리 키를 보호할 수 있습니다. StdRegProv 클래스에는 GetSecurityDescriptor 및 SetSecurityDescriptor 메서드가 있습니다. 이러한 메서드는 Win32_SecurityDescriptor 개체를 반환하고 씁니다.
프린터
Windows Vista 이상 버전에서는 GetSecurityDescriptor 및 SetSecurityDescriptor 메서드를 사용하여 Win32_Printer 클래스의 인스턴스에 대한 액세스를 보호할 수 있습니다. 이러한 메서드는 Win32_SecurityDescriptor 개체를 반환하고 씁니다.
서비스
Windows Vista 이상 버전에서는 GetSecurityDescriptor 및 SetSecurityDescriptor 메서드를 사용하여 Win32_Service 클래스의 인스턴스에 대한 액세스를 보호할 수 있습니다. 이러한 메서드는 Win32_SecurityDescriptor 개체를 반환하고 씁니다.
DCOM 애플리케이션
DCOM 애플리케이션 인스턴스에는 여러 보안 설명자가 있습니다. Windows Vista 이상 버전에서는 Win32_DCOMApplicationSetting 클래스의 메서드를 사용하여 다양한 보안 설명자를 얻거나 변경합니다. 보안 설명자는 Win32_SecurityDescriptor 클래스의 인스턴스로 반환됩니다.
구성 권한을 얻거나 변경하려면 GetConfigurationSecurityDescriptor 또는 SetConfigurationSecurityDescriptor 메서드를 호출합니다.
액세스 권한을 얻거나 변경하려면 GetAccessSecurityDescriptor 또는 SetAccessSecurityDescriptor 메서드를 호출합니다.
활성화 권한을 얻거나 변경하려면 GetLaunchSecurityDescriptor 또는 SetLaunchSecurityDescriptor 메서드를 호출합니다.
파일
GetSecurityDescriptor 및 SetSecurityDescriptor 메서드는 CIM_DataFile 클래스가 아닌 Win32_LogicalFileSecuritySetting 클래스에 있습니다.
공유
GetSecurityDescriptor 및 SetSecurityDescriptor 메서드는 Win32_Share 클래스가 아닌 Win32_LogicalShareSecuritySetting 클래스에 있습니다.
참고
SetSecurityDescriptor 메서드에 대한 호출에서 새 SACL(보안 액세스 제어 목록)이 지정되지 않으면, 대상 보안 개체의 보안 설명자 SACL이 NULL로 설정되기 때문에 이전 SACL 설정이 유지되지 않습니다.
보안 설명자 형식 변환
보안 설명자는 일반적으로 C++에서 만들고 변경해야 하는 복잡한 이진 바이트 배열입니다. Get 메서드 중 하나를 사용하여 보안 설명자를 가져오면, Win32_SecurityDescriptorHelper 클래스는 보안 설명자를 SDDL(보안 설명자 정의 언어) 또는 Win32_SecurityDescriptor 인스턴스로 변환하는 메서드를 제공합니다.
ACL(액세스 제어 목록)은 Win32_SecurityDescriptor 인스턴스나 SDDL에서 더 쉽게 조작할 수 있습니다. WMI에서의 보안 설명자의 구조 및 사용에 대한 자세한 내용은 WMI 보안 설명자 개체를 참조하세요.
C++ 또는 C#에서는 변환 함수를 사용하여 이진 보안 설명자를 SDDL(보안 설명자 정의 언어)로 변환합니다. C++ 애플리케이션에서 보안 설명자 값을 수정하려면 ConvertSecurityDescriptorToStringSecurityDescriptor 및 ConvertStringSecurityDescriptorToSecurityDescriptor를 사용합니다.
보안 문제
보안 설명자를 변경할 때는 개체의 보안이 손상되지 않도록 대단히 주의해야 합니다. DACL(임의 액세스 제어 목록)의 ACE(액세스 제어 항목) 순서가 액세스 보안에 영향을 줄 수 있습니다. 자세한 내용은 DACL의 ACE 순서를 참조하세요.
관련 항목