* NIXスクリプトの多くは「sqlplus $ USER/$ PASSWORD @ $ Oracle_REMOTE_SID」を使用しています
スクリプトにクリアテキストのパスワードを設定するのはよくないことを知っています(現時点で代替手段はありません)。しかし、質問
答えは
記入するには(1)。 Oracleデータベースには、実際のパスワードではなく、パスワードのハッシュがあります。接続すると、Oracleは値を選択してクライアントに送信します。クライアントはユーザーが入力したパスワードをハッシュして、データベースが保存しているのと同じハッシュを取得し、それを使用してデータベースから送信された値をハッシュします。それをデータベースに送り返します。その間、データベースは同じハッシュされたパスワードでその値をハッシュしました。
クライアントがデータベースと同じ値になった場合、同じ開始点(つまり、ユーザーのパスワード)から来たと見なされます。 完全な説明
11gアルゴリズム は少し異なりますが、基本的な考え方は、パスワードがクリアテキストまたは簡単なハッシュで渡されないことです。深刻な攻撃者が必要になります。
スクリプトがデータベースサーバー上にある場合は、パスワードの代わりにOS認証を使用できます。あなたができる他のトリックがあります(データベースにどのIPアドレスから来ているかを判断させ、それに応じてホワイトリスト/ブラックリストを置くなど)。
構成によって異なります。 Oracleは、プロトコルおよびデータドライバーの一部としてTLSをサポートしているため、TLS(SSL)を介して完全に認証および通信できます。
これがデフォルトで有効になっているかどうかは、以下に依存します。
TLSを介して認証し、残りの通信を平文で行うことが可能かどうかはわかりませんが、あまり安全ではありません。
チェックアウト [〜#〜] tnsalias [〜#〜] Oracle Walletでパスワードを非表示にします。確かに、それはすべての人に隠されているわけではありませんが、DBAとスクリプト管理者を分離して、パスワードやTNS文字列を覗き見しないようにすることができます。
私が知っていることから、私は言うでしょう:
そして、それはかなり要約されます:) DBへのVPNのセキュリティ設定が必要な場合(専用接続の方が良いです)。証明書認証を使用します(少しのオーバーヘッド)。