LockPermissions 테이블

LockPermissions 테이블은 잠긴 환경에서 애플리케이션의 개별 부분을 보호하는 데 사용됩니다. 파일, 레지스트리 키 및 만든 폴더 설치와 함께 사용할 수 있습니다.

Windows Server 2008 R2 또는 Windows 7에 설치하기 위한 패키지는 LockPermissions 테이블 대신 MsiLockPermissionsEx 테이블을 사용해야 합니다. Windows Installer 5.0 이전의 Windows Installer 버전은 MsiLockPermissionsEx 테이블을 무시합니다. Windows Installer 5.0은 LockPermissions 테이블이 포함된 패키지를 설치할 수 있습니다. Windows Installer 5.0부터 MsiLockPermissionsEx 테이블과 LockPermissions 테이블이 모두 포함된 패키지 설치가 실패하고 Windows Installer 오류 메시지 1941을 반환합니다.

LockPermissions 테이블에는 다음 열이 있습니다.

Column 형식 Nullable
LockObject 식별자 Y N
테이블 Text Y N
도메인 Formatted Y Y
사용자 Formatted Y N
사용 권한 DoubleInteger N Y

 

LockObject

이 열과 테이블 열은 함께 보호할 파일, 디렉터리 또는 레지스트리 키를 지정합니다. LockObject 열은 Table 열로 지정된 테이블의 기본 키를 가리키는 외래 키입니다.

Table

이 열과 LockObject 열은 보호할 파일, 디렉터리 또는 레지스트리 키를 지정합니다. Table 열에서 파일, 레지스트리 또는 CreateFolder를 입력하여 File 테이블, Registry 테이블 또는 CreateFolder 테이블에 나열된 LockObject를 지정합니다.

Domain

사용 권한을 설정할 사용자의 도메인을 식별하는 열입니다. 독립 실행형 컴퓨터 이름 또는 도메인 이름입니다. 열 데이터 형식은 Formatted이며 이 필드에 [%USERDOMAIN] 문자열을 사용하여 현재 도메인에 대한 USERDOMAIN 환경 변수의 값을 가져올 수 있습니다. 다른 도메인을 얻으려면 사용자 지정 작업을 사용해야 합니다. 자세한 내용은 사용자 지정 작업 테이블을 참조하세요.

User

사용 권한을 설정할 사용자의 지역화된 이름을 식별하는 열입니다. 이 이름은 컴퓨터 또는 도메인에 있어야 합니다. 컴퓨터 또는 도메인 컨트롤러가 도메인 및 사용자 조합을 인식하지 못하거나 사용자의 SID(보안 식별자)를 검색할 수 없는 경우 설치에 실패합니다. 단일 LockObject에 대해 여러 사용자를 지정할 수 있습니다.

일반 사용자 이름 "Everyone" 및 "Administrators"는 영어로 입력될 수 있으며 잘 알려진 SID에 매핑됩니다. LocalSystem에는 LockPermissions 테이블을 통해 만든 모든 보안 설명자의 전체 권한이 부여됩니다. 이 필드에서 ComputerName 속성, LogonUser 속성 또는 USERNAME 속성을 사용하여 현재 사용자를 가져올 수 있습니다. 다른 사용자 또는 그룹의 지역화된 이름을 입력하려면 사용자 지정 작업이 필요합니다.

동일한 LockObject 및 Table 항목(그러나 User 항목이 다름)이 있는 여러 레코드를 사용하여 다중 사용자에 대한 액세스 제어 목록을 지정할 수 있습니다.

Permission

시스템 권한의 정수 설명을 식별하는 열입니다. 다음은 가장 일반적으로 사용되는 값을 제공합니다(전체 목록은 Winnt.h에 있음).

권한 Description
GENERIC_ALL
0X10000000
268435456
읽기, 쓰기 및 실행 권한
GENERIC_EXECUTE
0X20000000
536870912
실행 권한
GENERIC_WRITE
0X40000000
1073741824
쓰기 액세스

 

Permission 열에는 GENERIC_READ를 지정할 수 없습니다. 이렇게 하려고 시도하면 실패합니다. 대신 KEY_READ 또는 FILE_GENERIC_READ와 같은 값을 지정해야 합니다.

이 열에 입력된 Null은 나중에 사용할 수 있습니다.

설명

시퀀스 테이블InstallFiles, WriteRegistryValuesCreateFolders 작업은 이 테이블의 정보를 처리합니다. 시퀀스 테이블 사용에 대한 자세한 내용은 시퀀스 테이블 사용을 참조하세요.

권한은 컴퓨터 또는 도메인에 이미 있는 사용자의 LockPermissions 테이블에서만 설정할 수 있습니다. 알 수 없는 사용자에 대한 권한을 설정하려고 하면 지연된 사용자 지정 작업으로 설치하는 동안 해당 사용자 계정이 만들어지더라도 설치에 실패합니다.

시스템 관리자의 로컬 그룹을 모든 ACL(액세스 제어 목록)에 포함하는 것이 좋습니다. 이렇게 하면 시스템 관리자가 개체에 액세스하고 유지 관리할 수 있습니다.

LockPermissions 테이블에 나열된 모든 파일, 레지스트리 키 또는 디렉터리가 기존 개체를 대체하는지 여부에 관계없이 명시적 보안 설명자를 수신합니다. Windows Installer는 시스템에 이미 존재하는 개체에 대한 보안을 유지하려고 시도합니다. 개체가 LockPermissions 테이블에 나열되지 않고 기존 개체를 바꾸면 대체 개체가 대체하는 개체의 보안 설정을 가져옵니다.

개체가 LockPermissions 테이블에 나열되지 않고 기존 개체를 바꾸지 않으면 명시적 보안 설명자가 수신되지 않습니다. 새 개체에 대한 액세스는 부모 또는 컨테이너 개체의 특성을 기반으로 합니다. 개체가 테이블에 나열되지 않고 개체를 명시적 보안 설명자 없이 바꾸는 경우 새 개체에 대한 액세스는 부모 또는 컨테이너 개체의 특성을 기반으로 합니다.

Windows Installer는 UserSID 속성을 SID(보안 식별자) 또는 설치를 실행하는 사용자로 설정합니다.

유효성 검사

ICE03
ICE06
ICE46
ICE55