SAP SQL Anywhere 17 – データベース独立性の強化

 

デフォルトでは、データベースサーバーを起動すれば、実際に使う使わないにかかわらず、全ての機能にアクセスすることが可能です。

これらの機能の中には、 あなたが思いもよらないことをするために(悪意があるないにかかわらず)第3者がアプリケーションの一部として使用することが可能なものもあります。

 

例えば、ある第 3者は、データベースサーバーがファイルシステムにアクセスし、e-mail を送信し、web サービスを呼び出すということを利用して、マシンのセキュリティを脅かすことをするかもしれません。

アプリケーションの中でこれらの機能を使っている認識があれば、このような使われ方をする可能性に事前に気づき、問題を軽減するための適切に対処することができます。しかし、これらの機能をアプリケーションの中で使っていない場合には、問題が発生するまで気がつかないかもしれません。

バージョン 10 では、本番環境に配備された SQL Anywhere サーバーを第3者が誤って使用しないよう、アプリケーションを展開する際にデフォルトで利用できるサーバーの機能を開発者が制御できる機能をSQL Anywhereに追加しました。

これは、データベースサーバーの特定の機能を有効、無効にできる機能で、「Secure Feature」 機能と呼んでいます。例えば、xp_start/stop/sendmail プロシージャーを使わないのであれば、サーバーを実行する際にこの機能を無効にすることができます。

 

「Secure features」は、コマンドスイッチ (-sf <features>) で有効化します。特定の機能をランタイムで有効化/無効化するには、キー (-sk <key>) を使います。多くの機能を制御することが可能ですが、詳細についてはこちらを参照してください。
以下では、Secure Feature の機能を理解するために、新たに SQL Anywhere 17 で追加された新しい「secure feature」、データベースの独立性について説明します。

これが有効になっていると、1つのデータベースサーバー上で稼働しているそれぞれのデータベースは、そのデータベースサーバー上で稼働する唯一のデータベースであるかのように動作します。

同じサーバー上で稼働している他のデータベースのためにプロパティや接続情報をクエリする目的で、ある1つのデータベースへ接続することはできないようになっています。他のデータベースの起動・停止もできません。

新しいサーバーコマンドラインオプション -edi (enable database isolation) を使うと、データベースの独立性を有効にすることができます。また、secure feature database_isolation の機能を使うと、ある特定の接続に対して、アプリケーション側でデータベース独立性を無効にすることもできます。

これらの新しい 「secure feature」は、デフォルトでは有効になっており、グローバルに適用されるのではなく、特定のデータベースでのみ無効にすることができます。

具体的に説明するために、2つのデータベースを作成してみました。demo.db と demoprime.db です。これらのデータベースが稼働している状態でサーバーを起動すると、下のようになります。

 

続きはこちら:SAP SQL Anywhere 17 – データベース独立性の強化

 

SAPのSAP SQL Anywhere製品ページはこちら