SetPrivateObjectSecurity 함수(securitybaseapi.h)
SetPrivateObjectSecurity 함수는 프라이빗 개체의 보안 설명자를 수정합니다.
보호된 서버가 ACE( 액세스 제어 항목 )의 자동 상속을 지원하는지 여부를 지정하려면 SetPrivateObjectSecurityEx 함수를 사용합니다.
구문
BOOL SetPrivateObjectSecurity(
[in] SECURITY_INFORMATION SecurityInformation,
[in] PSECURITY_DESCRIPTOR ModificationDescriptor,
[in, out] PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor,
[in] PGENERIC_MAPPING GenericMapping,
[in, optional] HANDLE Token
);
매개 변수
[in] SecurityInformation
설정할 보안 설명자의 부분을 나타냅니다. 이 값은 SECURITY_INFORMATION 비트 플래그의 조합일 수 있습니다.
[in] ModificationDescriptor
SECURITY_DESCRIPTOR 구조체에 대한 포인터입니다. SecurityInformation 매개 변수로 표시된 이 보안 설명자의 부분은 ObjectsSecurityDescriptor 보안 설명자에 적용됩니다.
[in, out] ObjectsSecurityDescriptor
SECURITY_DESCRIPTOR 구조체에 대한 포인터입니다. 이 보안 설명자는 자체 상대 형식이어야 합니다. 보안 설명자에 대한 메모리는 HeapAlloc 함수를 사용하여 프로세스 힙(GetProcessHeap)에서 할당되어야 합니다.
입력 시 프라이빗 개체의 현재 보안 설명자입니다. 함수는 이를 수정하여 새 보안 설명자를 생성합니다. 필요한 경우 SetPrivateObjectSecurity 함수는 더 큰 보안 설명자를 생성하기 위해 추가 메모리를 할당합니다.
[in] GenericMapping
각 일반 액세스 권한에 해당하는 특정 및 표준 액세스 권한을 지정하는 GENERIC_MAPPING 구조체에 대한 포인터입니다.
[in, optional] Token
프라이빗 개체의 보안을 대신하는 클라이언트의 액세스 토큰 에 대한 핸들입니다. 이 매개 변수는 클라이언트가 새 SID(소유자 보안 식별자 )에 대해 합법적인 값을 제공했는지 확인하는 데 필요합니다. 토큰은 TOKEN_QUERY 액세스를 위해 열려 있어야 합니다.
반환 값
함수가 성공하면 함수는 0이 아닌 값을 반환합니다.
함수가 실패하면 0을 반환합니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
설명
이 함수는 리소스 관리자만 사용하기 위한 것입니다. 보안 설명자를 업데이트하기 위한 표준 액세스 제어 의미 체계를 구현하려면 리소스 관리자는 SetPrivateObjectSecurity를 호출하기 전에 다음 조건이 충족되는지 확인해야 합니다.
- 개체의 소유자가 설정되는 경우 호출 프로세스 에는 WRITE_OWNER 권한이 있거나 개체의 소유자여야 합니다.
- 개체의 DACL( 임의 액세스 제어 목록 )이 설정되는 경우 호출 프로세스에는 WRITE_DAC 권한이 있거나 개체의 소유자여야 합니다.
- 개체의 SACL( 시스템 액세스 제어 목록 )을 설정하는 경우 호출 프로세스에 대해 SE_SECURITY_NAME 권한을 사용하도록 설정해야 합니다.
클라이언트에는 일반적으로 기본 토큰 작업에 필요한 적절한 권한이 없기 때문에 이 함수를 호출하는 프로세스는 클라이언트를 가장하지 않아야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | securitybaseapi.h(Windows.h 포함) |
라이브러리 | Advapi32.lib |
DLL | Advapi32.dll |