Firebird를 Windows에 설치할 때 사용하는 명령줄 도구인 instreg.exe와 instsvc.exe 사용 방법
instreg.exe 및 instsvc.exe 사용 방법
저자: 원저자: Alex Peshkov (peshkoff at mail.ru), 수정: Olivier Mascia (om at tipgroup.com)
참고 :: 공백이나 특수(비 ASCII) 문자가 포함된 긴 경로로 인해 발생할 수 있는 잠재적 문제를 해결하기 위해, 이 도구들은 더 이상 RootDirectory를 명령줄 인수로 받지 않습니다. 두 바이너리 모두 Firebird 루트 디렉터리 아래의 /bin 디렉터리에 설치(또는 복사)되어야 합니다.
(루트 디렉터리 == firebird.conf 및 security2.fdb가 설치된 디렉터리의 루트입니다.)
예를 들어, 이들이 C:\FB20.in에 있다면 루트 디렉터리는 C:\FB20으로 추론됩니다.
INSTREG.EXE
이 유틸리티의 목적은 Firebird용 레지스트리 키를 설치하는 것입니다. 이 작업은 RootDirectory 경로를 자신의 위치 바로 위 디렉터리로 추론하여 절대 경로로 레지스트리에 기록하기 때문에, instreg.exe는 Firebird 루트 디렉터리의 /bin 하위 디렉터리에 설치되어야 합니다(위 참고 참조).
레지스트리 키는 엔진 실행에 필수는 아닙니다. 그러나 많은 타사 도구가 작동하기 위해 이 키를 읽을 것으로 기대합니다. 저장되는 키는 다음과 같습니다.
HKLM\SOFTWARE\Firebird Project\Firebird Server\Instances
여기에는 하나의 문자열 값인 DefaultInstance가 포함됩니다.
이 ‘DefaultInstance’ 문자열 값에는 설치 루트 디렉터리의 전체 경로(백슬래시로 종료)가 포함됩니다. 이 설정은 다음 버전에서 명명된 다중 인스턴스 서버 관리를 가능하게 하기 위해 구축되었습니다. 현재 유일한 인스턴스는 하드코딩된 이름 ‘DefaultInstance’를 받습니다. 레지스트리에는 다른 것이 저장되지 않습니다. 버전이나 구성 정보는 타사 도구가 해당 firebird.conf 파일에서 찾을 수 있습니다. 이 파일은 …\Instances\DefaultInstance 값에 저장된 루트 경로 덕분에 찾을 수 있습니다.
사용법:
instreg i[nstall]
instreg r[emove]
‘-z’는 다른 옵션과 함께 사용할 수 있으며, 출력의 첫 줄로 Firebird 소프트웨어 버전을 출력합니다.
간단한 텍스트 도움말을 보려면 인수 없이 instreg.exe를 호출하십시오.
INSTSVC.EXE
Firebird는 WinNT/2000/XP 플랫폼에서 Firebird 서비스를 관리하는 표준 루틴인 instsvc.exe를 제공합니다.
콘솔 메시지
Windows 오류 메시지(있는 경우)의 출력이 개선되어 ANSI 문자열을 콘솔 창의 OEM 문자 집합으로 필요한 변환이 수행됩니다. 이는 비영어권 Windows를 사용하는 사용자가 자신의 언어로 된 Windows 시스템 오류 메시지를 올바른 악센트 등과 함께 받을 수 있음을 의미합니다.
보안 관련 기능
이전에 구현된 ‘-login’(또는 -l) 옵션은 광범위하게 수정 및 개선되었습니다. 이제 기본 “LocalSystem” 대신 특정 사용자 계정(아마도 시스템에서 제한된 권한을 가진)으로 서비스를 실행하도록 설정하는 데 사용할 수 있습니다.
사용법:
instsvc i[nstall] [ -s[uperserver]* | -c[lassic] | -m[ultithreaded] ]
[ -a[uto]* | -d[emand] ]
[ -g[uardian] ]
[ -l[ogin] username [password] ]
[ -n[ame] instance ]
[ -i[nteractive] ]
instsvc sta[rt] [ -b[oostpriority] ] [ -n[ame] instance ]
instsvc sto[p] [ -n[ame] instance ]
instsvc q[uery]
instsvc r[emove] [ -n[ame] instance ]
이 유틸리티는 Firebird 설치의 ‘bin’ 디렉터리에 위치하여 실행되어야 합니다.
-
‘*‘는 기본값을 나타냅니다.
-
‘-z’는 다른 옵션과 함께 사용할 수 있으며 버전을 출력합니다.
-
‘username’은 기본적으로 이 컴퓨터의 로컬 계정을 의미합니다.
-
해당하는 경우 ‘domain\username’ 또는 ‘server\username’ 형식을 사용하십시오.
예제
Firebird가 설치(설치 위치에 복사)되었다고 가정합니다.
Superserver 및 자동 시작이 이제 기본값입니다.
instsvc i
instsvc install
기본 시스템 ID인 “LocalSystem"으로 자동 시작(부팅 시 시작) 모드의 서비스로 Superserver를 설정합니다.
instsvc i -g
instsvc install -guardian
위와 동일하지만 Guardian 서비스를 먼저 시작합니다.
“-demand”(-d) 및 “-classic”(-c) 옵션을 사용하면 기본값을 변경할 수 있으므로 classic 서버(superserver 대신)를 서비스로 구성할 수 있고, 두 서비스 모두 부팅 시 시작 대신 요청 시 시작하도록 구성할 수 있습니다.
서비스 제거
서비스는 제거되기 전에 중지되어야 합니다. 이는 3줄의 코드로 자동화할 수 있지만 안전을 위해 그대로 두는 것이 좋습니다.
instsvc r
instsvc remove
서비스 정의를 제거합니다. Guardian이 구성된 경우 Guardian 및 서버 서비스가 모두 제거됩니다.
설치된 서비스 시작 및 중지
instsvc sta
instsvc start
install 명령으로 구성된 내용에 따라 서버 또는 Guardian + 서버를 시작합니다.
instsvc stop
install 명령으로 구성된 내용에 따라 서버 또는 Guardian + 서버를 중지합니다.
서버 상태 보고서 가져오기
이것은 새로운 명령입니다:
instsvc q
instsvc query
정확히 무엇이 구성되어 있고 어떻게 구성되어 있는지, 그리고 서비스가 실행 중인지 중지되었는지에 대한 보고서를 출력합니다.
보안 로그인 기능 사용
“-login” 옵션은 사용자 이름과 암호가 필요합니다:
instsvc i -g -login user pass
이렇게 하면 FB superserver가 Guardian과 함께 자동 시작으로 구성되어 암호가 pass인 “user” ID로 실행됩니다.
* 암호가 포함된 경우 암호는 ‘-‘로 시작해서는 안 됩니다.
* 암호가 명령줄에서 생략된 경우 instsvc가 암호를 묻는 메시지를 표시합니다. 이 경우 입력하는 동안 암호가 ‘*‘로 마스킹됩니다.
위와 같이 서비스를 구성하는 동안 instsvc는 지정된 사용자에게 “서비스로 로그온"이라는 Windows 운영 체제 권한을 자동으로 부여합니다. 이것은 필수입니다. 그렇지 않으면 서비스가 시작될 수 없습니다. instsvc는 실패하지 않는 한 이에 대해 조용히 처리합니다.
-login 스위치를 통해 로그인하는 사용자가 컴퓨터에 대한 관리자 권한이 없는 일반 사용자일 가능성을 고려하여, instsvc는 서비스의 기본 보안 설명자를 조정하여 이 사용자가 서비스를 시작/중지/쿼리할 수 있도록 합니다.
이는 Guardian(또한 이 사용자로 실행)이 FB 서버를 시작할 수 있도록 하는 데 필요합니다. 사용자는 서비스를 제거하거나 구성을 변경할 수 없습니다.
참고
Instsvc는 Windows 컴퓨터에서 “사용자"를 생성하지 않습니다. 그것은 좋은 생각이 아닐 것입니다. 관리자는 사용자를 로컬 컴퓨터의 일부로 또는 도메인의 일부로 생성하기를 원할 수 있으며, instsvc는 사용자 생성에 대한 관리자의 책임을 빼앗을 특별한 필요가 없습니다.
사용자는 모든 데이터베이스와 firebird.log 파일에 대한 읽기/쓰기 액세스 권한이 필요합니다. 보안상의 이유로 firebird.conf 및 Firebird 실행 파일에 대한 쓰기 액세스 권한은 부여해서는 안 됩니다.
Windows NT/2K/XP에서는 도메인이나 다른 서버에 로컬로 정의된 사용자에 대해 도메인 또는 서버 접두사를 포함하는 것이 일반적입니다. 위의 예에서 “user"는 다음과 같은 형식을 취할 수 있습니다:
DOMAIN\user 또는
SERVER\user
접두사가 없으면 사용자는 암시적으로 현재 컴퓨터의 로컬 사용자입니다.