Firebird Documentation Index → Утилиты Firebird → Утилита GSEC → Пакетный режим |
В нижеследующем описании команд пакетного режима подразумевается,
что переменные окружения ISC_USER
и
ISC_PASSWORD
определены и имеют правильные значения. Это
позволяет запускать GSEC без необходимости всегда указывать в командной
строке опции -user
и
-password
. В свою очередь это уменьшает длину
командной строки, позволяя после преобразования данного XML-файла в pdf
уместить их на ширине страницы формата A4.
Не храните правильные значения в этих переменных постоянно, поскольку это небезопасно!
Вам может показаться, что вы можете оценить результат выполнения утилиты
по значению переменной окружения %ERRORLEVEL%
в ОС Windows или
$?
в различных вариантах Unix. Это не так. Возвращаемый
результат выполнения всегда равен нулю до СУБД Firebird 2.0. Начиная с СУБД
Firebird 2.0 GSEC может возвращать ненулевой код выполнения,
сигнализирующий о неудачном выполнении.
Для запуска GSEC в пакетном режиме используйте следующую командную строку:
gsec [ <опции> ... ] <команда> [ <параметр> ... ]
Ниже представлена команда вывода информации о пользователях и результат ее выполнения:
C:\>gsec -display user name uid gid full name ------------------------------------------------------------------------ SYSDBA 0 0 NORMAN 0 0 Norman Dunbar EPOCMAN 0 0 Benoit Gilles Mascia
Для вывода информации о конкретном пользователе используйте
команду display
, указав имя пользователя в
качестве параметра.
C:\>gsec -display epocman user name uid gid full name ------------------------------------------------------------------------ EPOCMAN 0 0 Benoit Gilles Mascia
При добавлении пользователя в пакетном режиме в подтверждение
успешности операции ничего не сообщается. После этого нужно использовать
команду display
или display
<имя>
для того, чтобы убедиться, что пользователь
добавлен успешно.
C:\>gsec -add newuser -pw newuser -fname New -lname User
C:\>gsec -display user name uid gid full name ------------------------------------------------------------------------ SYSDBA 0 0 NORMAN 0 0 Norman Dunbar NEWUSER 0 0 New User EPOCMAN 0 0 Benoit Gilles Mascia
При удалении пользователя в пакетном режиме в подтверждение
успешности операции ничего не сообщается. После этого нужно использовать
команду display
или display
<имя>
для того, чтобы убедиться, что пользователь
удален успешно.
C:\>gsec -delete newuser
C:\>gsec -display user name uid gid full name ------------------------------------------------------------------------ SYSDBA 0 0 NORMAN 0 0 Norman Dunbar EPOCMAN 0 0 Benoit Gilles Mascia
Для уже существующего пользователя в базе данных безопасности можно изменить пароль и его настоящие имя, отчество и фамилию.
C:\>gsec -modify norman -pw newpassword
C:\>gsec -modify norman -mname MiddleName -fname Fred
C:\>gsec -display user name uid gid full name ------------------------------------------------------------------------ SYSDBA 0 0 NORMAN 0 0 Fred MiddleName Dunbar EPOCMAN 0 0 Benoit Gilles Mascia
Если вы хотите удалить один или несколько атрибутов из записи о пользователе, то просто не определяйте их новых значений после соответствующего параметра.
C:\>gsec -modify norman -mname -fname -lname
C:\>gsec -display user name uid gid full name ------------------------------------------------------------------------ SYSDBA 0 0 NORMAN 0 0 EPOCMAN 0 0 Benoit Gilles Mascia
Теперь пользователя NORMAN никто не узнает :o)
Версию утилиты GSEC можно узнать используя команду
-z
. Учтите, что эта команда после выполнения
переводит вас в интерактивный режим и не возвращает из него. Она не
завершается так, как это делают остальные команды пакетного режима. Для
выхода из интерактивного режима используйте команду
quit
. Но обходной путь существует, и он показан
ниже. Сначала посмотрим на проблему - вот она:
C:\>gsec -z gsec version WI-V1.5.0.4306 Firebird 1.5 GSEC>
Решение проблемы в создании маленького файла, содержащего команду
quit
и указании GSEC читать этот файл, когда ему
потребуется ввод пользователя:
C:\>copy con fred quit ^Z 1 file(s) copied.
C:\>gsec -z < fred gsec version WI-V1.5.0.4306 Firebird 1.5 GSEC> C:\>
Такое решение можно использовать для любых команд, которые
переходят в интерактивный режим в то время, когда вы думаете, что они
выполняются в пакетном. По перенаправлению ввода на командный файл, GSEC
считает строку текста из него в тот момент, когда ему понадобится ввод
пользователя с клавиатуры. А заставляя его читать команду
quit
, вы завершите работу в интерактивном
режиме.
Команда -z не нуждается в опциях -user
и
-password
. Если вы их не укажете, то в этом
случае она отображает информацию о версии, а потом известит вас, что
не указан пользователь и пароль. Это сообщение вы можете не принимать
во внимание.
Firebird Documentation Index → Утилиты Firebird → Утилита GSEC → Пакетный режим |