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

適用対象:SQL Server - Windows のみ

セキュリティは、あらゆる製品、あらゆる企業にとって重要です。 単純なベスト プラクティスに従うことで、多くのセキュリティの脆弱性を避けることができます。 この記事では、SQL Server をインストールする前と SQL Server をインストールした後の両方で考慮する必要があるセキュリティのベスト プラクティスについて説明します。 特定の機能のセキュリティについては、その機能の参照記事で説明しています。

SQL Server をインストールする前に

サーバー環境をセットアップする場合、次のベスト プラクティスに従ってください。

物理的なセキュリティの強化

SQL Server のセキュリティは、物理的な分離と論理的な分離に基づいています。 SQL Server インストールの物理的なセキュリティを強化するには、次のタスクを実行します。

  • 無許可の人が入れない部屋にサーバーを配置します。

  • データベースをホストするコンピューターを物理的に保護された場所に配置します。水位報知器および火災報知器や消火システムによって監視された、鍵がかかるコンピューター ルームが理想的です。

  • データベースは、企業イントラネットの安全なゾーンにインストールします。SQL Server インスタンスをインターネットに直接接続しないでください。

  • すべてのデータを定期的にバックアップし、バックアップを安全な場所に保存します。

ファイアウォールの使用

ファイアウォールは、 SQL Server インストールのセキュリティを確保するために重要です。 次のガイドラインに従った場合、ファイアウォールが最も効果的になります。

  • ファイアウォールをサーバーとインターネットの間に配置します。 ファイアウォールを有効にします。 ファイアウォールがオフになっている場合はオンにします。 ファイアウォールがオンになっている場合は、オフにしないでください。

  • ファイアウォールでネットワークをセキュリティ ゾーンに分割します。 すべてのトラフィックをブロックした後、必要なトラフィックのみを選択的に許可します。

  • 多層環境では、複数のファイアウォールを使用してスクリーン サブネットを作成します。

  • Windows ドメイン内にサーバーをインストールする場合は、Windows 認証を可能にする内部ファイアウォールを構成します。

  • アプリケーションで分散トランザクションを使用する場合は、別々の MS DTC インスタンスの間で Microsoft 分散トランザクション コーディネーター (MS DTC) トラフィックが許可されるように、ファイアウォールの構成が必要になる場合があります。 また、 SQL Serverなどのリソース マネージャーと MS DTC の間でトラフィックが許可されるようにファイアウォールを構成する必要もあります。

Windows ファイアウォールの既定の設定に関する詳細と、 データベース エンジン、 Analysis Services、 Reporting Services、および Integration Servicesに影響する TCP ポートの説明については、「 SQL Server のアクセスを許可するための Windows ファイアウォールの構成」をご覧ください。

サービスの分離

サービスを分離すると、いずれかのサービスが停止した場合でも、その他のサービスに影響が及ぶのを防ぐことができます。 サービスを分離する場合は、次のガイドラインを考慮してください。

  • 各 SQL Server サービスを個別の Windows アカウントで実行します。 可能な場合は、 SQL Server サービスごとに権限の低い個別の Windows またはローカル ユーザー アカウントを使用します。 詳細については、「 Windows サービス アカウントと権限の構成」を参照してください。

安全なファイル システムの構成

正しいファイル システムを使用することで、セキュリティは向上します。 SQL Server のインストールには、次の作業を行う必要があります。

NT ファイル システム (NTFS) または Resilient File System (ReFS) を使用します。 NTFS および ReFS は、FAT32 ファイル システムと比べて安定性と復旧性が高いため、SQL Server のインストール用のファイル システムとして推奨されています。 また、NTFS または ReFS では、ファイルとディレクトリのアクセス制御リスト (ACL) などのセキュリティ オプションを使用することもできます。 NTFS では、ファイルを暗号化する、暗号化ファイル システム (EFS) もサポートされています。 SQL Server のインストール時に NTFS が検出されると、レジストリ キーとファイルに対して適切な ACL が設定されます。 これらの権限は変更しないでください。 SQL Server の今後のリリースでは、FAT ファイル システムを使用するコンピューターへのインストールはサポートされない可能性があります。

Note

EFS を使用すると、 SQL Serverを実行しているアカウントの ID でデータベース ファイルが暗号化されます。 ファイルの暗号化を解除できるのはこのアカウントだけです。 SQL Server を実行するアカウントを変更する必要がある場合、まずは古いアカウントでファイルの暗号化を解除して、新しいサービス アカウントで再度暗号化する必要があります。

警告

EFS 経由でファイル暗号化を使用すると、暗号化によって非同期 I/O が同期となるため、I/O のパフォーマンスが低下する可能性があります。 「Windows で非同期ディスクの I/O が同期として表示される」を参照してください。 または、Transparent Data Encryption (TDE)Always Encrypted、列レベルの暗号化である T-SQL 関数 などの SQL Server 暗号化テクノロジの使用を検討してください。

NetBIOS とサーバー メッセージ ブロックの無効化

境界領域ネットワーク内のサーバーでは、NetBIOS とサーバー メッセージ ブロック (SMB) を含め、不要なプロトコルをすべて無効にする必要があります。

NetBIOS には次のポートを使用します。

  • UDP/137 (NetBIOS ネーム サービス)

  • UDP/138 (NetBIOS データグラム サービス)

  • TCP/139 (NetBIOS セッション サービス)

SMB には次のポートを使用します。

  • TCP/139

  • TCP/445

Web サーバーとドメイン ネーム システム (DNS) サーバーは NetBIOS と SMB をいずれも必要としません。 これらのサーバーでは、両方のプロトコルを無効にしてユーザー列挙の脅威を緩和します。

ドメイン コントローラーへの SQL Server のインストール

セキュリティ上の理由から、ドメイン コントローラーには SQL Server をインストールしないことをお勧めします。 SQL Server のセットアップ時にインストールが中止されることはありませんが、次の制限事項が適用されます。

  • ローカル サービス アカウントを使用して、ドメイン コントローラー上で SQL Server サービスを実行することはできません。

  • コンピューターに SQL Server をインストールした後で、そのコンピューターをドメイン メンバーからドメイン コントローラーに変更することはできません。 ホスト コンピューターをドメイン コントローラーに変更する前に、 SQL Server をアンインストールする必要があります。

  • コンピューターに SQL Server をインストールした後で、そのコンピューターをドメイン コントローラーからドメイン メンバーに変更することはできません。 ホスト コンピューターをドメイン メンバーに変更する前に、 SQL Server をアンインストールする必要があります。

  • SQL Server フェールオーバー クラスター インスタンスは、クラスター ノードがドメイン コントローラーの場合はサポートされません。

  • SQL Server セットアップでは、読み取り専用ドメイン コントローラーにセキュリティ グループを作成したり SQL Server サービス アカウントを準備したりすることはできません。 この場合、セットアップは失敗します。

SQL Server のインストール中またはインストール後

インストール後にアカウントと認証モードに関する次のベスト プラクティスに従うと、 SQL Server インストールのセキュリティを強化できます。

サービス アカウント

  • SQL Server サービスは、可能な限り低い権限で実行します。

  • SQL Server サービスを、権限の低い Windows ローカル ユーザー アカウントまたはドメイン ユーザー アカウントに関連付けます。

  • 詳細については、「 Windows サービス アカウントと権限の構成」を参照してください。

認証モード

強力なパスワード

  • sa アカウントには、必ず強力なパスワードを割り当てます。

  • パスワードの強度と有効期限に関するパスワード ポリシー チェックを必ず有効にします。

  • すべての SQL Server ログインに、必ず強力なパスワードを使用します。

重要

SQL Server Express のセットアップ時に、ログインは BUILTIN\Users グループに追加されます。 これにより、コンピューターの認証されたすべてのユーザーが public ロールのメンバーとして SQL Server Express のインスタンスにアクセスできるようになります。 BUILTIN\Users ログインを安全に削除して、 データベース エンジン アクセスを、個別のログインを持つコンピューター ユーザーまたはログインを持つ他の Windows グループのメンバーに制限できます。

参照

SQL Server のインストールに必要なハードウェアおよびソフトウェア
ネットワーク プロトコルとネットワーク ライブラリ
Kerberos 接続用のサービス プリンシパル名の登録