Як використовувати instreg.exe та instsvc.exe (інструменти командного рядка для встановлення Firebird на Windows)
Як використовувати instreg.exe та instsvc.exe
Автори: Оригінал: Alex Peshkov (peshkoff at mail.ru), Переглянуто: Olivier Mascia (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.
Використання:
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”.
Використання:
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 та автозапуск тепер є значеннями за замовчуванням.
instsvc i
instsvc install
налаштовує Superserver як службу в режимі автозапуску (запуск під час завантаження системи) під типовою системною ідентичністю, що називається “LocalSystem”.
instsvc i -g
instsvc install -guardian
як вище, але спочатку запускає службу Guardian.
Опції “-demand” (-d) та “-classic” (-c) дозволяють змінити значення за замовчуванням, тому класичний сервер (замість superserver) може бути налаштований як служба, і будь-яка служба може бути налаштована на запуск за запитом замість запуску під час завантаження системи.
Щоб видалити службу (служби)
Служби мають бути зупинені перед видаленням. Це можна автоматизувати за допомогою 3 рядків коду, але краще залишити як є для безпеки.
instsvc r
instsvc remove
видаляє визначення служби. Якщо Guardian було налаштовано, буде видалено як службу guardian, так і службу сервера.
Щоб запустити та зупинити встановлену службу (служби)
instsvc sta
instsvc start
запускає сервер або Guardian + сервер, відповідно до того, що було налаштовано командою install.
instsvc stop
зупиняє сервер або Guardian + сервер, відповідно до того, що було налаштовано командою install.
Щоб отримати звіт про стан сервера
Це нова команда:
instsvc q
instsvc query
Виводить звіт про те, *що* саме налаштовано та *як*, а також про те, чи запущені служби, чи зупинені.
Щоб використати функцію безпечного входу
Опція “-login” вимагає ім’я користувача та пароль:
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
Без префікса користувач неявно є локальним користувачем на поточній машині.