서비스 사용자 계정

각 서비스는 사용자 계정의 보안 컨텍스트에서 실행됩니다. 계정의 사용자 이름과 암호는 서비스가 설치될 때 CreateService 함수에 의해 지정됩니다. 사용자 이름 및 암호는 ChangeServiceConfig 함수를 사용하여 변경할 수 있습니다. QueryServiceConfig 함수를 사용하여 서비스 개체와 연결된 사용자 이름(암호는 아님)을 가져올 수 있습니다. SCM(서비스 제어 관리자)은 사용자 프로필을 자동으로 로드합니다.

서비스를 시작할 때 SCM은 서비스와 연결된 계정에 로그온합니다. 로그온에 성공하면 시스템은 액세스 토큰을 생성하고 새 서비스 프로세스에 연결합니다. 이 토큰은 보안 개체(보안 설명자가 연결된 개체)와의 모든 후속 상호 작용에서 서비스 프로세스를 식별합니다. 예를 들어 서비스에서 파이프에 대한 핸들을 열려고 하면 시스템은 액세스 권한을 부여하기 전에 서비스의 액세스 토큰을 파이프의 보안 설명자와 비교합니다.

SCM은 서비스 사용자 계정의 암호를 유지 관리하지 않습니다. 암호가 만료되면 로그온이 실패하고 서비스가 시작되지 않습니다. 서비스에 계정을 할당하는 시스템 관리자는 만료되지 않는 암호로 계정을 만들 수 있습니다. 관리자는 서비스 구성 프로그램을 사용하여 암호를 주기적으로 변경하여 만료되는 암호로 계정을 관리할 수도 있습니다.

서비스에서 정보를 공유하기 전에 다른 서비스를 인식해야 하는 경우 두 번째 서비스는 첫 번째 서비스와 동일한 계정을 사용하거나 첫 번째 서비스에서 인식하는 별칭에 속하는 계정에서 실행할 수 있습니다. 네트워크를 통해 분산된 방식으로 실행해야 하는 서비스는 도메인 전체 계정에서 실행되어야 합니다.

서비스에 대한 사용자 계정을 지정하는 대신 다음 특수 계정 중 하나를 지정할 수 있습니다.