SQL Server の保護

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

SQL Server セキュリティの詳細については、 SQL Server Web サイトを参照してください。 このサイトには、推奨事項やセキュリティ チェックリストが掲載されています。 このサイトには、最新のサービス パックの情報およびダウンロードも含まれています。

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

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

物理的なセキュリティ

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

物理的なネットワーク セキュリティを実装する第一歩は、承認されていないユーザーがネットワークにアクセスできないようにすることです。 次の表に、ネットワーク セキュリティ情報の詳細を示します。

対象 解決方法については、
SQL Server Compact および他の SQL Server エディションへのネットワーク アクセス SQL Server Compact オンライン ブックの「サーバー環境の構成とセキュリティ設定」

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

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

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

対象 解決方法については、
ファイアウォールの構成: SQL Server データベース エンジン アクセスを有効にするための Windows ファイアウォールを構成する
ファイアウォールの構成: Integration Services SSIS サービスにアクセスするように Windows ファイアウォールを構成する
ファイアウォールの構成: Analysis Services Analysis Services のアクセスを許可するための Windows ファイアウォールの構成
アクセスするためにファイアウォールの特定のポートを開く: SQL Server SQL Server のアクセスを許可するための Windows ファイアウォールの構成
チャネル バインドとサービス バインドを使用して認証の拡張保護をサポートするように構成します。 拡張保護を使用したデータベース エンジンへの接続

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

対象 解決方法については、
次のために必要なサービス: SQL Server Windows サービス アカウントと権限の構成

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

対象 解決方法については、
IIS セキュリティ: SQL Server Compact SQL Server Compact オンライン ブックの「IIS セキュリティ (IIS Security)」
Reporting Services [認証] Reporting Services での認証
SQL Server Compact と IIS アクセス SQL Server Compact オンライン ブックの「インターネット インフォメーション サービス セキュリティ フローチャート」

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

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

対象 解決方法については、
SQL Server プログラム ファイル SQL Server の既定のインスタンスおよび名前付きインスタンスのファイルの場所

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

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

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

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

プリンシパルは、個人、グループ、およびプロセスに与えられた 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 セキュリティのベスト プラクティスには、安全なクライアント アプリケーションの作成が含まれています。

クライアント アプリケーションをネットワーク レイヤーで保護する方法の詳細については、「 クライアント ネットワーク構成」を参照してください。

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)

SQL Server インストールにおけるセキュリティの考慮事項

SQL Server データベース エンジンと Azure SQL Database のセキュリティ センター