データベース ファイルの初期化

データ ファイルおよびログ ファイルの初期化は、ディスクに以前削除したファイルのデータが残っている場合にそれを上書きするために行います。データ ファイルおよびログ ファイルは、次のいずれかの操作を実行したときに、ファイルを 0 で満たすことによって初期化されます。

  • データベースの作成

  • 既存のデータベースへのファイル (ログまたはデータ) の追加

  • 既存のファイル (自動拡張操作を含む) のサイズ増加

  • データベースまたはファイル グループの復元

上記の操作は、ファイルの初期化によって余分な時間がかかります。ただし、データを初めてファイルに書き込む際には、オペレーティング システムがファイルを 0 で満たす必要はありません。

ファイルの瞬時初期化

SQL Server では、データ ファイルを瞬時に初期化できます。これにより、上記のファイル操作を高速に実行することが可能になります。ファイルの瞬時初期化では、必要な領域を 0 で満たす操作を行わずに、使用中のディスク領域を再要求します。代わりに、新しいデータがファイルに書き込まれるときに、ディスクの内容が上書きされます。ログ ファイルを瞬時に初期化することはできません。

注意

ファイルの瞬時初期化は、Microsoft Windows XP Professional または Windows Server 2003 以降のバージョンでのみ使用できます。

ファイルの瞬時初期化は、SQL Server (MSSQLSERVER) サービス アカウントに SE_MANAGE_VOLUME_NAME が許可されている場合にのみ有効です。Windows Administrator グループのメンバーにはこの権限があり、他のユーザーをボリュームの保守タスクを実行セキュリティ ポリシーに追加することにより、これらのユーザーにこの権限を許可することができます。ユーザー権利の割り当ての詳細については、Windows のマニュアルを参照してください。

ファイルの瞬時初期化は、TDE が有効になっている場合は使用できません。

セキュリティの注意点

削除されたディスクの内容は、新しいデータがファイルに書き込まれるときにのみ上書きされるため、許可されていないプリンシパルがこの削除された内容にアクセスする可能性があります。データベース ファイルが SQL Server のインスタンスにアタッチされている間は、ファイル上の任意のアクセス制御リスト (DACL) により、このような情報公開の脅威は低減されます。この DACL により、SQL Server サービス アカウントとローカル管理者のみにファイル アクセスが許可されます。しかし、ファイルがデタッチされると、SE_MANAGE_VOLUME_NAME のないユーザーまたはサービスによりアクセスされる可能性があります。データベースがバックアップされる際にも、同様の脅威が存在します。バックアップ ファイルが適切な DACL で保護されていないと、許可されていないユーザーやサービスが削除された内容を利用できるようになる場合があります。

削除された内容が公開される可能性が懸念される場合は、次のいずれか、または両方を行う必要があります。

  • デタッチされたすべてのデータ ファイルおよびバックアップ ファイルに、常に限定的な DACL が設定されるようにする。

  • SQL Server サービス アカウントの SE_MANAGE_VOLUME_NAME を禁止して、SQL Server のインスタンスに対するファイルの瞬時初期化を無効にする。

注意

ファイルの瞬時初期化の無効化で効果があるのは、ユーザー権限が禁止された後で作成またはサイズ増加されたファイルのみです。