Não vejo isso na documentação do Netezza.
Temos muitos scripts Linux onde fazemos isso:
NZ_PASSWD_ENCRYPTED=29TY20T98=
NZ_PASSWD_CLEAR=`DecryptFunc $NZ_PASSWD_ENCRYPTED`
NzResult=$(nzsql -db ${NZ_DATABASE} -u ${NZ_USER} -pw $NZ_PASSWD_CLEAR -h $NZ_HOST \
-qc "select 'hi there folks;'")
Não gosto de deixar a senha pendurada lá no ambiente de comando onde pode ser hackeada.
Existe algum tipo de função para tratar a senha de forma diferente no script nzsql? Perdi alguma coisa na documentação? Ou algum truque em scripts Linux que eu possa usar?
Desde já, obrigado....
Três opções:
os exemplos estão de cabeça, não tenho uma instância para testá-lo agora, talvez seja necessário ajustá-los um pouco.
exportando-o para o ambiente:
Qualquer pessoa que possa ler as variáveis de ambiente definidas para o seu shell ainda poderá recuperar a senha, mas ela não aparecerá na lista de processos visível para todos no sistema
colocando em um script:
coloque a consulta em um arquivo sql, adicione algo assim no topo dele:
Em seguida, use nzsql para executar este arquivo. Você pode precisar especificar um usuário de login para o nzsql também, mas qualquer usuário deve fazê-lo (mesmo aquele que só pode não ter outros direitos além de fazer login)
Qualquer pessoa que puder ler o arquivo sql poderá ver a senha, mas eu não acho que não vai aparecer em nenhum outro lugar
usando nzpassword
Existe uma ferramenta para armazenar senhas criptografadas em um arquivo oculto ~/.nzpassword, para uso posterior, com:
consulte: http://www-01.ibm.com/support/knowledgecenter/SSULQD_7.1.0/com.ibm.nz.adm.doc/c_sysadm_encrypted_passwords.html