Эта страница переведена машинным переводом. Читайте английский оригинал. English

Библиотека IBSurgeon

Как использовать instreg.exe и instsvc.exe (инструменты командной строки для установки Firebird на Windows)

Как использовать instreg.exe и instsvc.exe

Авторы: Оригинал: Алекс Пешков (peshkoff at mail.ru), Редакция: Оливье Маска (om at tipgroup.com)

ПРИМЕЧАНИЕ :: Чтобы решить возможные проблемы с длинными путями, содержащими пробелы или специальные (не ascii) символы, эти инструменты больше не принимают RootDirectory в качестве аргумента командной строки. Оба исполняемых файла должны быть установлены (или скопированы) в каталог /bin внутри корневого каталога вашего Firebird.

(Корневой каталог == корневой каталог, где установлены firebird.conf и security2.fdb.)

Например, если они расположены в C:\FB20.in, корневой каталог будет определен как C:\FB20.

INSTREG.EXE

Назначение этой утилиты - установить ключи реестра для Firebird. Поскольку её задача - определить путь RootDirectory как каталог, непосредственно находящийся выше её собственного расположения, и записать его в реестр как абсолютный путь, instreg.exe должен быть установлен в подкаталог /bin корневого каталога Firebird (см. примечание выше).

Ключ реестра *не* требуется для работы движка; однако многие сторонние инструменты ожидают его чтения для своей работы. Сохраняемый ключ:

HKLM\SOFTWARE\Firebird Project\Firebird Server\Instances

и содержит одно строковое значение: DefaultInstance.

Это строковое значение ‘DefaultInstance’ содержит полный путь (с завершающей обратной косой чертой) к корневому каталогу установки. Эта настройка создана так, чтобы управление именованными мульти-экземплярами сервера стало возможным в следующей версии. В настоящее время единственный экземпляр получает жестко заданное имя ‘DefaultInstance’. В реестре больше ничего не хранится. Любая информация о версии или конфигурации должна быть найдена сторонними инструментами в соответствующем файле firebird.conf. Этот файл можно найти благодаря корневому пути, сохраненному в значении …\Instances\DefaultInstance.

Использование:

Code
instreg i[nstall]
instreg r[emove]

‘-z’ можно использовать с любой другой опцией, выводит версию программного обеспечения Firebird первой строкой вывода.

Чтобы получить краткую текстовую справку, просто запустите instreg.exe без аргументов.

INSTSVC.EXE

Firebird предоставляет стандартную процедуру для управления службой Firebird на платформах WinNT/2000/XP - instsvc.exe.

Консольные сообщения

Вывод сообщений об ошибках Windows (если таковые имеются) был улучшен, так что выполняется необходимая транслитерация ansi-строк в OEM-кодировку окна консоли. Это означает, что люди, использующие неанглийскую версию Windows, будут получать системные сообщения об ошибках Windows на своём языке с правильными акцентами и так далее.

Функции, связанные с безопасностью

Ранее реализованная опция ‘-login’ (или -l) была существенно пересмотрена и улучшена. Теперь её можно использовать для настройки службы (служб) на запуск под конкретной учётной записью пользователя (предположительно с ограниченными привилегиями в системе) вместо стандартной “LocalSystem”.

Использование:

Code
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 ]

Эта утилита должна находиться и запускаться из каталога ‘bin’ вашей установки Firebird.

  • ‘*’ обозначает значения по умолчанию

  • ‘-z’ можно использовать с любой другой опцией, выводит версию

  • ‘username’ по умолчанию относится к локальной учётной записи на этой машине.

  • Используйте формат ‘domain\username’ или ‘server\username’, если это уместно.

Примеры

предполагается, что Firebird установлен (скопирован в место установки).

Superserver и автозапуск теперь являются значениями по умолчанию.

Code
instsvc i
instsvc install

настраивает Superserver как службу в режиме автозапуска (запускается при загрузке) под стандартной системной учётной записью, именуемой “LocalSystem”.

Code
instsvc i -g
instsvc install -guardian

как выше, но сначала запускает службу Guardian.

Опции “-demand” (-d) и “-classic” (-c) позволяют изменить значения по умолчанию, так что классический сервер (вместо superserver) может быть настроен как служба, и любая служба может быть настроена на запуск по требованию вместо запуска при загрузке.

Для удаления службы (служб)

Службы должны быть остановлены перед удалением. Это можно было бы автоматизировать тремя строками кода, но лучше оставить как есть для безопасности.

Code
instsvc r
instsvc remove

удаляет определение службы. Если был настроен Guardian, будут удалены и служба Guardian, и служба сервера.

Для запуска и остановки установленных служб

Code
instsvc sta
instsvc start

запускает сервер или Guardian + сервер, в зависимости от того, что было настроено командой install.

Code
instsvc stop

останавливает сервер или Guardian + сервер, в зависимости от того, что было настроено командой install.

Для получения отчёта о состоянии сервера

Это новая команда:

Code
instsvc q
instsvc query

Выводит отчёт о том, *что* именно настроено и *как*, а также о том, запущены ли службы или остановлены.

Для использования функции безопасного входа

Опция “-login” требует имя пользователя и пароль:

Code
instsvc i -g -login user pass

Это настроит FB superserver с автозапуском, с Guardian, для работы под учётной записью “user”, чей пароль - pass.

\* Если пароль включён, он не должен начинаться с ‘-’.

\* Если пароль опущен в командной строке, 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

Без префикса пользователь неявно является локальным пользователем на текущей машине.