SQL Server のセキュリティ保護

適用対象:SQL Server

SQL Server の保護は、プラットフォーム、認証、オブジェクト (データを含む)、システムにアクセスするアプリケーションの 4 つの領域が関係する、一連の手順としてとらえることができます。 この記事では、効果的なセキュリティ計画を作成および実装する方法について、順を追って説明します。

SQL Server のセキュリティに関する詳細は、「SQL Server のセキュリティのベスト プラクティス」 を参照してください。 このサイトには、推奨事項やセキュリティ チェックリストが掲載されています。 最新のサービス パックまたは累積的な更新プログラムをインストールしてください。

プラットフォームとネットワーク セキュリティ

SQL Server のプラットフォームは、クライアントをデータベース サーバーに接続する物理的なハードウェアおよびネットワーク システムと、データベース要求の処理に使用するバイナリ ファイルで構成されます。

物理的なセキュリティ

物理的なセキュリティのベスト プラクティスは、物理的なサーバーおよびハードウェア コンポーネントへのアクセスを制限することです。 たとえば、鍵のかかる部屋を使用し、データベース サーバー ハードウェアおよびネットワーク デバイスへのアクセスを制限します。 さらに、バックアップ メディアをオフサイトの安全な場所で保管することにより、バックアップ メディアへのアクセスも制限します。

物理的なネットワーク セキュリティを実装する第一歩は、承認されていないユーザーがネットワークにアクセスできないようにすることです。 詳細については、「インフラストラクチャの脅威」を参照してください。

オペレーティング システムのセキュリティ

オペレーティング システムのサービス パックおよびアップグレードには、重要なセキュリティの強化が含まれています。 更新プログラムおよびアップグレードは、すべてデータベース アプリケーションでテストしてからオペレーティング システムに適用してください。

ファイアウォールも、セキュリティを実装する効果的な方法を提供します。 論理的には、組織のデータ セキュリティ ポリシーに従って、ネットワーク トラフィックを分離または制限する役割を果たすのがファイアウォールです。 ファイアウォールを使用する場合は、セキュリティ対策を特に強化するポイントを設けることで、オペレーティング システム レベルのセキュリティが向上します。 次の表に、SQL Server でのファイアウォールの使用方法に関する詳細情報を示します。

対象 参照トピック
SQL Server でファイアウォールが動作するように構成する データベース エンジン アクセスを有効にするための Windows ファイアウォールを構成する
統合サービスでファイアウォールが動作するように構成する Integration Services サービス (SSIS サービス)
Analysis Services でファイアウォールが動作するように構成する Analysis Services のアクセスを許可するための Windows ファイアウォールの構成
SQL Server へのアクセスを有効にするためにファイアウォールの特定のポートを開く SQL Server のアクセスを許可するための Windows ファイアウォールの構成
チャネル バインドとサービス バインドを使用して認証の拡張保護をサポートするように構成します。 拡張保護を使用したデータベース エンジンへの接続

外部からのアクセスの縮小はセキュリティのための措置で、未使用のコンポーネントの停止または無効化などが含まれます。 外部からのアクセスを縮小すると、システムを攻撃する手段が限られるので、セキュリティの向上を図ることができます。 SQL Server への外部からのアクセスを制限するために重要なことは、サービスとユーザーに適切な権限のみを付与して、必要なサービスを "最小の権限" で実行することです。 次の表に、サービスおよびシステム アクセスの詳細を示します。

対象 参照トピック
SQL Server に必要なサービス Windows サービス アカウントと権限の構成

SQL Server システムがインターネット インフォメーション サービス (IIS) を使用する場合は、プラットフォームを外部のアクセスから保護するための追加の手順が必要です。 次の表に、SQL Server およびインターネット インフォメーション サービスに関する情報を示します。

対象 参照トピック
SQL Server Compact を使用した IIS セキュリティ SQL Server の保護 - オペレーティング システムのセキュリティ
レポート サービスの認証 Reporting Services での認証
SQL Server Compact および IIS アクセス インターネット インフォメーション サービス セキュリティ フローチャート

SQL Server オペレーティング システム ファイルのセキュリティ

SQL Server では、操作やデータ保存にオペレーティング システム ファイルが使用されます。 ファイル セキュリティのベスト プラクティスでは、これらのファイルへのアクセスを制限する必要があります。 次の表に、これらのファイルに関する情報を示します。

対象 参照トピック
SQL Server プログラム ファイル SQL Server の既定のインスタンスおよび名前付きインスタンスのファイルの場所

SQL Server のサービス パックおよびアップグレードは、強化されたセキュリティを提供します。 SQL Server 用の利用可能な最新サービス パックを確認するには、SQL Server Web サイトを参照してください。

次のスクリプトを使用すると、システムにインストールされているサービス パックを確認できます。

SELECT CONVERT(char(20), SERVERPROPERTY('productlevel'));  

プリンシパルとデータベース オブジェクト セキュリティ

プリンシパルとは、SQL Server へのアクセス権が付与された個人、グループ、およびプロセスです。 "セキュリティ保護可能なリソース" とは、サーバー、データベース、およびデータベースに含まれているオブジェクトを指します。 それぞれに、SQL Server への外部からのアクセスを削減するために構成できる一連のアクセス許可が割り当てられています。 次の表に、プリンシパルおよびセキュリティ保護可能なリソースに関する情報を示します。

対象 参照トピック
サーバーとデータベースのユーザー、ロール、プロセス プリンシパル (データベース エンジン)
サーバーとデータベース オブジェクトのセキュリティ セキュリティ保護可能
SQL Server のセキュリティ階層 権限の階層 (データベース エンジン)

暗号化と証明書

暗号化では、アクセス コントロールの問題は解決されません。 ただし、暗号化を使用すると、アクセス コントロールがバイパスされるようなまれな状況においてもデータ損失のリスクが限定されるので、セキュリティが強化されます。 たとえば、データベース ホスト コンピューターの構成が適切でない場合に、クレジット カード番号などの機密データを悪意のあるユーザーが入手したとしても、盗まれた情報が暗号化されていれば悪用される可能性が小さくなります。 次の表に、SQL Server での暗号化の詳細を示します。

対象 参照トピック
SQL Server の暗号化階層: 暗号化階層
安全な接続の実装 データベース エンジンへの暗号化接続を有効にする (SQL Server 構成マネージャー)
暗号化関数 暗号化関数 (Transact-SQL)

証明書は、2 つのサーバー間で共有されているソフトウェアの "キー" であり、強力な認証による安全な通信を実現します。 SQL Server で証明書を作成して使用することで、オブジェクトおよび接続のセキュリティを向上させることができます。 次の表に、SQL Server での証明書の使用方法に関する情報を示します。

対象 参照トピック
SQL Server が使用する証明書の作成: CREATE CERTIFICATE (Transact-SQL)
データベース ミラーリングでの証明書の使用 データベース ミラーリング エンドポイントでの証明書の使用 (Transact-SQL)

アプリケーション のセキュリティ

クライアント プログラム

SQL Server セキュリティのベスト プラクティスには、安全なクライアント アプリケーションの作成が含まれます。 クライアント アプリケーションをネットワーク レイヤーで保護する方法の詳細については、「 クライアント ネットワーク構成」を参照してください。

Windows Defender アプリケーション制御 (WDAC)

Windows Defender アプリケーション制御 (WDAC) により、未承認のコード実行を防ぐことができます。 WDAC は、実行可能ファイルベースのマルウェアの脅威を軽減する効果的な方法です。 詳細については、「Windows Defender アプリケーション制御」ドキュメントを参照してください。

SQL Server のセキュリティ ツール、ユーティリティ、ビュー、関数

SQL Server には、セキュリティの構成および管理に使用できるツール、ユーティリティ、ビュー、および関数が用意されています。

SQL Server のセキュリティ ツールとユーティリティ

次の表に、セキュリティの構成と管理に使用できる SQL Server のツールとユーティリティに関する情報を示します。

対象 参照トピック
SQL Server への接続、およびその構成と制御 SQL Server Management Studio の使用 [SQL Server]
コマンド プロンプトでの SQL Server への接続とクエリの実行 sqlcmd Utility
SQL Server 用ネットワークの構成および制御 SQL Server 構成マネージャー
ポリシー ベースの管理を使用した機能の有効化と無効化 ポリシー ベースの管理を使用したサーバーの管理
レポート サーバーのための対称キーの操作 rskeymgmt ユーティリティ (SSRS)

SQL Server のセキュリティ カタログ ビューと関数

データベース エンジン では、セキュリティ情報がいくつかのビューで公開されており、パフォーマンスと実用性を目的とした関数が公開されています。 次の表に、セキュリティ ビューおよびセキュリティ関数に関する情報を示します。

対象 参照トピック
SQL Server のセキュリティ カタログ ビュー。データベース レベルおよびサーバー レベルのアクセス許可、プリンシパル、ロールなどに関する情報を返します。 暗号化キーと証明書に関する情報や資格情報を表示するカタログ ビューもあります。 セキュリティ カタログ ビュー (Transact-SQL)
SQL Server のセキュリティ関数。現在のユーザー、権限、およびスキーマに関する情報を返します。 セキュリティ関数 (Transact-SQL)
SQL Server のセキュリティ動的管理ビュー。 セキュリティ関連の動的管理ビューおよび関数 (Transact-SQL)