다음을 통해 공유


개체의 DACL 검색

개체의 보안 설명자에는 DACL(임의 액세스 제어 목록)이 포함될 수 있습니다. DACL에는 개체에 액세스할 수 있는 사용자 및 그룹을 식별하는 0개 이상의 ACE(액세스 제어 항목)가 포함되어 있습니다. DACL이 비어 있는 경우(즉, API가 0개 포함됨) 액세스 권한이 명시적으로 부여되지 않으므로 액세스가 암시적으로 거부됩니다. 그러나 개체의 보안 설명자에 DACL이 없으면 개체가 보호되지 않고 모든 사용자가 완전히 액세스할 수 있습니다.

개체의 DACL을 검색하려면 개체의 소유자이거나 개체에 대한 READ_CONTROL 액세스 권한이 있어야 합니다.

디렉터리 개체의 DACL을 가져와서 설정하려면 IADsSecurityDescriptor 인터페이스를 사용합니다. C++를 사용하여 IADsSecurityDescriptor::get_DiscretionaryAcl 메서드는 IDispatch 포인터를 반환합니다. 해당 IDispatch 포인터에서 QueryInterface를 호출하여 IADsAccessControlList 인터페이스를 얻고 해당 인터페이스의 메서드를 사용하여 DACL의 개별 ACE에 액세스합니다. DACL을 수정하는 절차는 개체에 대한 액세스 권한 설정에 설명되어 있습니다.

ACE를 열거하려면 IADsAccessControlList::get__NewEnum 메서드를 사용합니다. 메서드는 IUnknown 포인터를 반환합니다. 해당 IUnknown 포인터에서 QueryInterface를 호출하여 IEnumVARIANT 인터페이스를 가져옵니다. IEnumVARIANT::Next 메서드를 사용하여 ACL에서 ACE를 열거합니다. 각 ACE는 IDispatch 포인터를 포함하는 VARIANT로 반환됩니다(vt 멤버는 VT_DISPATCH). 해당 IDispatch 포인터에서 QueryInterface를 호출하여 ACE에 대한 IADsAccessControlEntry 인터페이스를 가져옵니다. IADsAccessControlEntry 인터페이스의 메서드를 사용하여 ACE의 구성 요소를 설정하거나 검색할 수 있습니다.

DACL 및 ACL에 대한 자세한 내용은 SDK(플랫폼 소프트웨어 개발 키트)의 다음 topics 참조하세요.