Firebird Documentation Index → Утилиты Firebird → Утилита GSEC → Особенности работы с GSEC |
Ниже представлены некоторые особенности, выявленные при практическом использовании утилиты GSEC. Некоторые из них упомянуты выше, а некоторые, быть может, нет. Просматривая все это в одном месте, вы, скорее всего, сможете определить причину возникновения вашей конкретной проблемы при работе с GSEC.
Вносить изменения в базу данных безопасности может только пользователь sysdba. Обычный пользователь может запустить GSEC только для просмотра информации. Начиная с СУБД Firebird 2 пользователь может изменить любую информацию о себе. Вот пример того, что происходит, когда обычный пользователь пытается добавить нового пользователя в базу данных безопасности:
C:\>gsec -user norman -password norman GSEC> add myuser -pw mypassword add record error no permission for insert/write access to TABLE USERS
Обычный пользователь может только просматривать информацию в базе данных. Причем до вресии 2 СУБД Firebird он имеет возможность просмотреть список всех пользователей, зарегистрированных в базе данных безопасности (см. ниже), а в СУБД Firebird 2 он увидит только самого себя.
C:\>gsec -user norman -password norman -display user name uid gid full name ------------------------------------------------------------------------ SYSDBA 0 0 NORMAN 0 0 Norman Dunbar EPOCMAN 0 0 Benoit Gilles Mascia
Команды GSEC применимы к обоим режимам, но при работе в пакетном режиме вы должны использовать для них префикс "знак минус" (-), иначе получите нижеследующее сообщение об ошибке:
C:\>gsec -user sysdba -password masterkey display invalid parameter, no switch defined error in switch specifications GSEC>
Заметьте. что GSEC оставляет вас в интерактивном режиме в случае
возникновения ошибки. Чтобы этого избежать, достаточно поставить минус
перед командой display
:
C:\>gsec -user sysdba -password masterkey -display user name uid gid full name ------------------------------------------------------------------------ SYSDBA 0 0 NORMAN 0 0 Norman Dunbar EPOCMAN 0 0 Benoit Gilles Mascia
Теперь GSEC выполняет то, что от него требуют - отображает список пользователей, и завершает работу.
Переменные окружения операционной системы ISC_USER
и
ISC_PASSWORD
позволят запустить GSEC без использования
опций командной строки -user
и
-password
. Однако помните, что оставлять
правильные значения в этих переменных на длительное время
небезопасно.
Как и в случае с другими утилитами командной строки помните, что лучше всего в работе использовать утилиту GSEC, поставляемую с версией вашего сервера баз банных.
Запуская утилиту GSEC в ОС windows, вы
можете проанализировать код завершения через значение переменной
%ERRORLEVEL%
и определить, удачно завершилась GSEC или
возникла ошибка при выполнении требуемой задачи.
В случае с ОС Unix любой разновидности код завершения можно
оценить по значению переменной $?
.
К сожалению, до СУБД Firebird 2 утилита GSEC всегда завершается с нулевым кодом, что делает невозможным перехватить ошибку ее выполнения в пакетном режиме.
Как уже говорилось ранее, в некоторых ситуациях ошибка пакетного режима может привести к тому, что утилита GSEC перейдет в интерактивный режим, и скрипт прервет выполнение, ожидая клавиатурного ввода пользователя. Путь решения данной проблемы был описан выше.
Firebird Documentation Index → Утилиты Firebird → Утилита GSEC → Особенности работы с GSEC |