ページ

2009年3月27日金曜日

もったいないノフ!

0 件のコメント:
接続文字列の管理という問題は、暗号を復号するときの鍵配送問題に似ている。
僕が今PGを担当しているプロジェクトでは、同一のアプリケーションが複数のサーバの複数のDBに対して接続を行うわけだが、その際に使用する接続文字列を堂管理するのかと言う問題が常に付きまとってきている。
上司としては、接続文字列は管理者のみが変更できるようにしたいらしい。

では、アプリケーション固有の文字列(つまりEXEのリソース文字列)として持つのは?

ノー。DB名・ユーザー名・パスワード・のいずれかが代わるたびにアプリケーションをビルドしなおして再配布しないといけない。そんな手間はかけたくない。

では、管理者権限でのみアクセス出来るDB内に必要な接続文字列を記述し、アプリケーションではそのDB内の接続文字列を使用するやり方は?

ノー。アプリケーションが最初に接続する際の接続文字列が公開されている。

では、情報をシリアライズしたファイルを読み込むやり方は?

ノー。それはビルドの場合と同様。変更のたびにシリアライズが必要になる。


という感じで、接続文字列をどう管理するかという問題は、性急ではないにせよなかなか解決の難しい問題だ。
社内の多くのアプリケーションが、接続文字列をアプリケーション内に持っているだけに、類例が社内に見つからないのが難しいところだ。

つまり、変更が容易で、なおかつ第三者には漏れず、漏れても簡単に変えることの出来ない仕組みが必要になるわけだが……まあ来月中に何かアイデアが出るだろう…。