アプリケーションのセキュリティ
SQL Server 用 Microsoft JDBC ドライバー を使用するときは、アプリケーションのセキュリティを確保するための対策を講じることが重要です。 以下のセクションでは、アプリケーションをセキュリティ保護するために実行できる手順に関する情報を提供します。
Java のポリシー アクセス許可の使用
SQL Server 用 Microsoft JDBC ドライバー を使用するときは、JDBC ドライバーに必要な Java のポリシー アクセス許可を指定することが重要です。 Java Runtime Environment (JRE) には、広範なセキュリティ モデルが用意されています。 このモデルは、リソースにアクセスできるスレッドであかどうかを判断するために、実行時に使用できます。 セキュリティ ポリシー ファイルでこのアクセスを制御することができます。 ポリシー ファイル自体は、コンテナーの配置担当者とシステム管理者によって管理されます。 この記事に一覧されているアクセス許可は、JDBC ドライバーの機能に影響を与えるものです。
ポリシー ファイルの一般的なアクセス許可は、次のようになっています。
// Example policy file entry.
grant [signedBy <signer>,] [codeBase <code source>] {
permission <class> [<name> [, <action list>]];
};
付与する特権の数を最小限に抑えるために、次のコードベースは JDBC ドライバーのコードベースに限定してください。
grant codeBase "file:/install_dir/lib/-" {
// Grant access to data source.
permission java.util.PropertyPermission "java.naming.*", "read,write";
// Specify which hosts can be connected to.
permission java.net.socketPermission "host:port", "connect";
// Logger permission to take advantage of logging.
permission java.util.logging.LoggingPermission;
// Grant listen/connect/accept permissions to the driver if
// connecting to a named instance as the client driver.
// This connects to a udp service and listens for a response.
permission java.net.SocketPermission "*", "listen, connect, accept";
};
Note
コード "file:/install_dir/lib/-" は、JDBC ドライバーのインストール ディレクトリを指します。
サーバーとの通信の保護
JDBC ドライバーを使用して SQL Server データベースと通信する場合は、通信チャネルをセキュリティで保護することが重要です。 インターネット プロトコル セキュリティ (IPSec) または TLS (トランスポート層セキュリティ) (以前の SSL (Secure Sockets Layer)) のいずれかを使用して、あるいは両方を使用してチャネルをセキュリティで保護することができます。
TLS のサポートを使用すれば、IPSec 以外の追加の保護レベルを提供できます。 TLS の使用方法の詳細については、暗号化の使用に関するページを参照してください。