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

추가 정보

클라이언트/서버 Access Control 함수

클라이언트/서버 Access Control 개요

CreatePrivateObjectSecurity

DestroyPrivateObjectSecurity

GENERIC_MAPPING

GetPrivateObjectSecurity

SECURITY_DESCRIPTOR

SECURITY_INFORMATION

SetFileSecurity

SetKernelObjectSecurity

SetPrivateObjectSecurityEx

SetUserObjectSecurity