これはNetezzaのドキュメントには記載されていません。
これを行うLinuxスクリプトはたくさんあります。
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;'")
パスワードがハッキングされる可能性のあるコマンド環境にそのままにしておくのは好きではありません。
Nzsqlスクリプトでパスワードを別の方法で処理する関数はありますか?ドキュメントに何か見逃しましたか?または、私が使用できるLinuxスクリプトのトリックを教えてください。
前もって感謝します....
3つのオプション:
例は頭の中にあります。今すぐテストするインスタンスがありません。少し調整する必要があるかもしれません。
NZ_PASSWD_ENCRYPTED=29TY20T98=
export NZ_PASSWORD=`DecryptFunc $NZ_PASSWD_ENCRYPTED`
NzResult=$(nzsql -db ${NZ_DATABASE} -u ${NZ_USER} -h $NZ_Host \
-qc "select 'hi there folks;'")
unset NZ_PASSWORD
シェルに設定された環境変数を読み取ることができるユーザーは、引き続きパスワードを取得できますが、システムのすべてのユーザーに表示されるプロセスリストには表示されません。
クエリをsqlファイルに入れ、その先頭に次のようなものを追加します。
\set STOP_ON_ERROR TRUE
\echo *** connecting to MY_DATABASE ***
\connect MY_DATABASE MY_USER MY_PASSWORD
select 'hi there folks;'
次に、nzsqlを使用してこのファイルを実行します。 nzsqlへのログインユーザーも指定する必要がある場合がありますが、すべてのユーザーが指定する必要があります(ログイン以外に他の権限を一切持つことができないユーザーも含む)
sqlファイルを読み取ることができる人は誰でもパスワードを見ることができますが、他の場所には表示されないと思います
後で使用するために、暗号化されたパスワードを非表示の〜/ .nzpasswordファイルに保存するツールがあります。
nzpassword add -u user -pw password -Host hostname