Документация Firebird → Утилиты 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 → Утилиты Firebird → Утилита GSEC → Пакетный режим |