適用対象:Windows 上の SQL Server
セキュリティは、あらゆる製品、あらゆる企業にとって重要です。 単純なベスト プラクティスに従うことで、多くのセキュリティの脆弱性を避けることができます。 この記事では、SQL Server をインストールする前と SQL Server をインストールした後の両方で考慮する必要があるセキュリティのベスト プラクティスについて説明します。 特定の機能のセキュリティについては、その機能の参照記事で説明しています。
SQL Server をインストールする前に
サーバー環境をセットアップする場合、次のベスト プラクティスに従ってください。
- 物理的なセキュリティの強化
- ファイアウォールの使用
- サービスの分離
- 安全なファイル システムの構成
- NetBIOS とサーバー メッセージ ブロックの無効化
- ドメイン コントローラーに SQL Server をインストールする
物理的なセキュリティを強化する
物理的および論理的な分離は、SQL Server セキュリティの基盤となります。 SQL Server インストールの物理的なセキュリティを強化するには、次のタスクを実行します。
無許可の人が入れない部屋にサーバーを配置します。
データベースをホストするコンピューターを物理的に保護された場所に配置します。水位報知器および火災報知器や消火システムによって監視された、鍵がかかるコンピューター ルームが理想的です。
企業イントラネットのセキュリティで保護されたゾーンにデータベースをインストールし、SQL Server インスタンスをインターネットに直接接続しないでください。
すべてのデータを定期的にバックアップし、バックアップを安全な場所に保存します。
ファイアウォールを使用する
ファイアウォールは、SQL Server のインストールをセキュリティで保護するために重要です。 ファイアウォールは、次のガイドラインに従う場合に最も効果的です。
ファイアウォールをサーバーとインターネットの間に配置します。 ファイアウォールを有効にします。 ファイアウォールがオフになっている場合はオンにします。 ファイアウォールが有効になっている場合は、オフにしないでください。
ファイアウォールでネットワークをセキュリティ ゾーンに分割します。 すべてのトラフィックをブロックした後、必要なトラフィックのみを選択的に許可します。
多層環境では、複数のファイアウォールを使用して、スクリーンサブネットを作成します。
Windows ドメイン内にサーバーをインストールする場合は、Windows 認証を許可するように内部ファイアウォールを構成します。
アプリケーションで分散トランザクションを使用する場合は、別々の MS DTC インスタンスの間で Microsoft 分散トランザクション コーディネーター (MS DTC) トラフィックが許可されるように、ファイアウォールの構成が必要になる場合があります。 また、MS DTC と SQL Server などのリソース マネージャー間のトラフィックフローを許可するようにファイアウォールを構成する必要もあります。
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 ファイル システムを使用するコンピューターへのインストールはサポートされない可能性があります。
注
EFS を使用する場合、データベース ファイルは SQL Server を実行しているアカウントの ID で暗号化されます。 ファイルの暗号化を解除できるのは、このアカウントだけです。 SQL Server を実行するアカウントを変更する必要がある場合は、まず古いアカウントのファイルを復号化してから、新しいサービス アカウントで再暗号化します。
警告
EFS 経由でファイル暗号化を使用すると、非同期 I/O が同期的になるため、I/O のパフォーマンスが低下する可能性があります。 「Windows で非同期ディスクの I/O が同期として表示される」を参照してください。 代わりに、 Transparent Data Encryption (TDE)、 Always Encrypted、列レベルの暗号化 暗号化暗号化関数などの 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 がインストールされているアカウントに次のユーザー権限が付与されている必要があります。
- バックアップ ファイルとディレクトリ
- プログラムのデバッグ
- 監査とセキュリティ ログの管理
これらのユーザー特権は、通常、既定でローカル管理者グループ (BUILTIN\Administrators) に付与されます。 ほとんどの場合、割り当てるアクションを実行する必要はありません。 ただし、セキュリティ ポリシーでこれらの特権が取り消された場合は、権限が正しく割り当てられているか、SQL Server のセットアップが失敗し、次のエラーが発生していることを確認してください。
The account that is running SQL Server Setup doesn't have one or all of the following rights: the right to back up files and directories, the right to manage auditing and the security log and the right to debug programs. To continue, use an account with both of these rights.
SQL Server のインストール中またはインストール後
インストール後、アカウントと認証モードに関する次のベスト プラクティスに従って、SQL Server インストールのセキュリティを強化します。
サービス アカウント
SQL Server サービスは、可能な限り低い権限で実行します。
SQL Server サービスを低い特権の Windows ローカル ユーザー アカウントまたはドメイン ユーザー アカウントに関連付けます。
詳細については、「Windows サービス アカウントと権限の構成」を参照してください。
認証モード
SQL Serverとの接続には Windows 認証が必要です。
Kerberos 認証を使用する。 詳細については、「 Kerberos 接続用のサービス プリンシパル名の登録」を参照してください。
強力なパスワード
- sa アカウントには、必ず強力なパスワードを割り当てます。
- パスワードの強度と有効期限に関するパスワード ポリシー チェックを必ず有効にします。
- すべての SQL Server ログインに、必ず強力なパスワードを使用します。
重要
SQL Server Express のセットアップ中に、 BUILTIN\Users グループのログインが追加されます。 このグループは、コンピューターのすべてのユーザーに、パブリック ロールのメンバーとして SQL Server Express のインスタンスへのアクセス権を付与します。
BUILTIN\Users グループを安全に削除して、個々のログインを持つコンピューター ユーザー、またはログインを持つ他の Windows グループのメンバーであるコンピューター ユーザーにデータベース エンジンのアクセスを制限できます。