레지스트리 키 보안 및 액세스 권한

Windows 보안 모델을 사용하면 레지스트리 키에 대한 액세스를 제어할 수 있습니다. 보안에 대한 자세한 내용은 Access-Control 모델을 참조하세요.

RegCreateKeyEx 또는 RegSetKeySecurity 함수를 호출할 때 레지스트리 키에 대한 보안 설명자를 지정할 수 있습니다. NULL을 지정하는 경우 키는 기본 보안 설명자를 가져옵니다. 키에 대한 기본 보안 설명자의 ACL은 직접 부모 키에서 상속됩니다.

레지스트리 키의 보안 설명자를 얻으려면 RegGetKeySecurity, GetNamedSecurityInfo 또는 GetSecurityInfo 함수를 호출합니다.

레지스트리 키에 대한 유효한 액세스 권한에는 DELETE, READ_CONTROL, WRITE_DAC 및 WRITE_OWNER 표준 액세스 권한이 포함됩니다. 레지스트리 키는 SYNCHRONIZE 표준 액세스 권한을 지원하지 않습니다.

다음 표에서는 레지스트리 키 개체에 대한 특정 액세스 권한을 나열합니다.

의미
KEY_ALL_ACCESS(0xF003F)
STANDARD_RIGHTS_REQUIRED, KEY_QUERY_VALUE, KEY_SET_VALUE, KEY_CREATE_SUB_KEY, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY 및 KEY_CREATE_LINK 액세스 권한을 결합합니다.
KEY_CREATE_LINK(0x0020)
시스템에서 사용하도록 예약되었습니다.
KEY_CREATE_SUB_KEY(0x0004)
레지스트리 키의 하위 키를 만드는 데 필요합니다.
KEY_ENUMERATE_SUB_KEYS(0x0008)
레지스트리 키의 하위 키를 열거하는 데 필요합니다.
KEY_EXECUTE(0x20019)
KEY_READ 동일합니다.
KEY_NOTIFY(0x0010)
레지스트리 키 또는 레지스트리 키의 하위 키에 대한 변경 알림을 요청하는 데 필요합니다.
KEY_QUERY_VALUE(0x0001)
레지스트리 키의 값을 쿼리하는 데 필요합니다.
KEY_READ(0x20019)
STANDARD_RIGHTS_READ, KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS 및 KEY_NOTIFY 값을 결합합니다.
KEY_SET_VALUE(0x0002)
레지스트리 값을 만들거나 삭제하거나 설정하는 데 필요합니다.
KEY_WOW64_32KEY(0x0200)
64비트 Windows의 애플리케이션이 32비트 레지스트리 보기에서 작동해야 했음을 나타냅니다. 이 플래그는 32비트 Windows에서 무시됩니다. 자세한 내용은 대체 레지스트리 보기 액세스를 참조하세요.
이 플래그는 OR 연산자를 사용하여 레지스트리 값을 쿼리하거나 액세스하는 이 테이블의 다른 플래그와 결합되어야 합니다.
Windows 2000: 이 플래그는 지원되지 않습니다.
KEY_WOW64_64KEY(0x0100)
64비트 Windows의 애플리케이션이 64비트 레지스트리 보기에서 작동해야 했음을 나타냅니다. 이 플래그는 32비트 Windows에서 무시됩니다. 자세한 내용은 대체 레지스트리 보기 액세스를 참조하세요.
이 플래그는 OR 연산자를 사용하여 레지스트리 값을 쿼리하거나 액세스하는 이 테이블의 다른 플래그와 결합되어야 합니다.
Windows 2000: 이 플래그는 지원되지 않습니다.
KEY_WRITE(0x20006)
STANDARD_RIGHTS_WRITE, KEY_SET_VALUE 및 KEY_CREATE_SUB_KEY 액세스 권한을 결합합니다.

RegOpenKeyEx 함수를 호출할 때 시스템은 요청된 액세스 권한을 키의 보안 설명자에 대해 확인합니다. 사용자에게 레지스트리 키에 대한 올바른 액세스 권한이 없으면 열기 작업이 실패합니다. 관리자가 키에 액세스해야 하는 경우 솔루션은 SE_TAKE_OWNERSHIP_NAME 권한을 사용하도록 설정하고 WRITE_OWNER 액세스 권한으로 레지스트리 키를 여는 것입니다. 자세한 내용은 권한 사용 및 사용 안 함 을 참조하세요.

키의 SACL(시스템 액세스 제어 목록)을 읽거나 쓰려는 경우 레지스트리 키에 대한 ACCESS_SYSTEM_SECURITY 액세스 권한을 요청할 수 있습니다. 자세한 내용은 ACL(액세스 제어 목록)SACL 액세스 권한을 참조하세요.

미리 정의된 키를 포함하여 키에 대한 현재 액세스 권한을 보려면 레지스트리 편집기(Regedt32.exe)를 사용합니다. 원하는 키로 이동한 후 편집 메뉴로 이동하여 권한을 선택합니다.