セキュリティと認証
多くのSQLデータベースは,接続開始時にユーザ名とパスワードを要求するように設定できます.これは不要なアクセスを避けると同時に,特定のユーザが実行できる操作の範囲を制限するのにも有用です.データベースは通常サーバーベースであるため,このようなセキュリティに関する注意が重要になります.
DatabaseLink には,パスワードを取り扱う際に考えなければいけない問題が多数存在します.これらは必要とされるセキュリティレベル,およびセキュリティレベルと便利さのバランスによって異なります.もうひとつの問題として,
Mathematica をスタンドアロンモードで使用するか,
webMathematica のようにサーバ内で使用するかというのもあります.
パスワードを使用する場合に最も簡単なのは,
データベースのリソース:接続設定で述べたように,パスワードを接続設定ファイルに置くという方法です.しかし,パスワードはテキスト形式で保管されるため,侵入者によって設定ファイルが読まれ,パスワードが盗まれる可能性があります.これは危険であるため,
Database Explorer:New Connection Wizardに記載のNew Connection Wizardはパスワードを保存しません.しかし,設定ファイルを編集してパスワードを加えることはできます.設定ファイルのアクセス許可を,
Mathematica を実行する人のみに限定することで,さらに保護することができます.
GUIを使ってパスワードを入力するようにすると,よりセキュリティを高めることができます.この方法ではパスワードは保存されません.パスワード用のGUIは,パスワード設定に
"$Prompt"を使った場合に開きます.
パスワード入力用のダイアログボックスは以下のようなものです.
OpenSQLConnectionコマンドでパスワードを入力することもできます.接続が開始したらすぐに
Mathematica 入力を消去してください.
GUIは
Mathematica のインタラクティブセッションに便利ですが,web
Mathematica のように
Mathematica をWebサーバ内で実行する場合にはそれほど便利ではありません.この場合,さまざまな方法が考えられます.パスワードを設定ファイルに保存し,Webサーバ内で
Mathematica 処理を実行する人にだけ設定ファイルへのアクセスを許可することもできます.また,パスワードをWebサーバが提供している信頼できるメカニズムの中に保管することもできます.例えばTomcatサーバには,JDBC Realmに基づいたメカニズムがあります.データベースパスワードはWebサーバから取り出し,
Mathematica に渡して
OpenSQLConnectionコマンドで使うことができます.侵入者は
Mathematica コードを見ても,Webサーバ認証メカニズムを破らない限りデータベースパスワードを見付けることはできません.
より堅牢なセキュリティを確立するためには,
Mathematica とデータベースの間の通信をSSLで保護してください.これについては
SSL (Secure Socket Layer)をご覧ください.