Documentação Firebird → Utilitários do Firebird → GSEC → Truques do GSEC |
A seguir uma linha resumida de truques e idiossincrasias que detectei no meu uso do GSEC. Alguns desses já foram mencionados acima, outros podem não ter sido. Coletando todos em um só lugar, você poderá ser capaz de descobrir o que está acontecendo se tiver problemas.
Apenas um usuário sysdba pode alterar o BD de segurança. Usuários normais podem rodar o GSEC, mas apenas listar os conteúdos. A seguir mostramos o que acontece quando tentar alterar o banco quando rodando GSEC como um usuário normal.
C:\>gsec -user norman -password norman GSEC> add myuser -pw mypassword add record error no permission for insert/write access to TABLE USERS
Usuários normais podem apenas mostrar os detlhes do BD de segurança.
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
Os comandos do GSEC aplicam-se a ambos os modos de operação, porém, quando rodando em modo lote, você deve prefixar o comandos com um traço (-) ou será apresentada uma mensagem de erros similar a seguinte:
C:\>gsec -user sysdba -password masterkey display invalid parameter, no switch defined error in switch specifications GSEC>
Note também que você será deixado em modo interativo quando um erro ocorrer. A linha de comando correta deve ter um traço na frente do comando display, como segue:
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
Desta vez, GSEC cumpriu seu papel, mostrandos todos usuários conhecidos e terminou o utilitário.
Se as variáveis de ambiente ISC_USER e ISC_PASSWORD foram definidas, e isso não é uma boa idéia por razões de segurança, GSEC pode rodar sem passar as opções -user ou -password.
Assim como todos os utilitário de linha de comando, é melhor usar a versão do GSEC que vier junto com o seu servidor no pacote de instalação.
Quando executando GSEC sob Windows, você pode capturar o código de saída em %ERRORLEVEL% e verificar se houve sucesse ou fracasso do último comando executado.
Quando o sistema operacional for Unix - qualquer quer seja o sabor - o código de saída pode ser achado na variável $?.
Desafortunadamente, GSEC aparente sempre retornar zero e isso torna impossível criar um script que saiba lidar com erros tanto em Windows como em Unix. Triste, porém verdadeiro.
Documentação Firebird → Utilitários do Firebird → GSEC → Truques do GSEC |