Datenbankdatei-InitialisierungDatabase File Initialization

DIESES THEMA GILT FÜR: JaSQL ServerNeinAzure SQL-DatenbankneinAzure SQL Data Warehouse NeinParallel Data WarehouseTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Daten- und Protokolldateien werden initialisiert, um vorhandene Daten zu überschreiben, die von zuvor gelöschten Dateien auf dem Datenträger zurückgelassen wurden.Data and log files are initialized to overwrite any existing data left on the disk from previously deleted files. Daten- und Protokolldateien werden erstmals durch Ausfüllen der Dateien mit Nullen initialisiert, wenn Sie einen der folgenden Vorgänge durchführen:Data and log files are first initialized by zeroing the files (filling with zeros) when you perform one of the following operations:

  • Erstellen einer DatenbankCreate a database.
  • Fügen Sie Dateien oder Protokolldateien zu einer vorhandenen Datenbank hinzu.Add data or log files, to an existing database.
  • Vergrößern einer vorhanden Datei (einschließlich Vorgängen zur automatischen Vergrößerung).Increase the size of an existing file (including autogrow operations).
  • Wiederherstellen einer Datenbank oder DateigruppeRestore a database or filegroup.

Die Dateiinitialisierung führt dazu, dass diese Vorgänge mehr Zeit benötigen.File initialization causes these operations to take longer. Aber wenn die Daten zum ersten Mal an die Dateien geschrieben werden, muss das Betriebssystem die Dateien nicht mit Nullen ausfüllen.However, when data is written to the files for the first time, the operating system does not have to fill the files with zeros.

Schnelle Dateiinitialisierung (IFI)Instant File Initialization (IFI)

In SQL ServerSQL Server können Datendateien sofort initialisiert werden, um Löschvorgänge zu vermeiden.In SQL ServerSQL Server, data files can be initialized instantaneously to avoid zeroing operations. Mit der sofortigen Dateiinitialisierung ist eine schnelle Ausführung der zuvor erwähnten Dateivorgänge möglich.Instant file initialization allows for fast execution of the previously mentioned file operations. Bei der sofortigen Dateiinitialisierung wird belegter Speicherplatz freigegeben, ohne diesen Speicherplatz mit Nullen auszufüllen.Instant file initialization reclaims used disk space without filling that space with zeros. Stattdessen wird Datenträgerinhalt überschrieben, wenn neue Daten an die Dateien geschrieben werden.Instead, disk content is overwritten as new data is written to the files. Protokolldateien können nicht sofort initialisiert werden.Log files cannot be initialized instantaneously.

Hinweis

Die sofortige Dateiinitialisierung ist nur in MicrosoftMicrosoft Windows XP ProfessionalWindows XP Professional oder Windows Server 2003Windows Server 2003 oder höheren Versionen verfügbar.Instant file initialization is available only on MicrosoftMicrosoft Windows XP ProfessionalWindows XP Professional or Windows Server 2003Windows Server 2003 or later versions.

Wichtig

Die schnelle Dateiinitialisierung (Instant File Initialization, IFI) ist nur für Datendateien verfügbar.Instant file initialization is available only for data files. Protokolldateien werden immer auf Null gesetzt, wenn diese erstellt oder die Dateien größer werden.Log files will always be zeroed when being created, or growing in size.

Die schnelle Dateiinitialisierung ist nur verfügbar, wenn dem SQL ServerSQL Server-Dienststartkonto SE_MANAGE_VOLUME_NAME erteilt wurde.Instant file initialization is only available if the SQL ServerSQL Server service startup account has been granted SE_MANAGE_VOLUME_NAME. Mitglieder der Windows-Administratorengruppe verfügen über dieses Recht und können es anderen Benutzern erteilen, indem sie diese der Sicherheitsrichtlinie Durchführen von Volumewartungsaufgaben hinzufügen.Members of the Windows Administrator group have this right and can grant it to other users by adding them to the Perform Volume Maintenance Tasks security policy.

Wichtig

Die Verwendung bestimmter Features wie Transparent Data Encryption (TDE) kann die schnelle Dateiinitialisierung blockieren.Some feature usage, such as Transparent Data Encryption (TDE), can prevent Instant File Initialization.

So erteilen Sie einem Konto die Berechtigung Perform volume maintenance tasks :To grant an account the Perform volume maintenance tasks permission:

  1. Öffnen Sie auf dem Computer, auf die Sicherungsdatei erstellt wird, die Anwendung für lokale Sicherheitsrichtlinien (secpol.msc).On the computer where the backup file will be created, open the Local Security Policy application (secpol.msc).

  2. Erweitern Sie im linken Bereich Lokale Richtlinien, und klicken Sie dann auf Zuweisen von Benutzerrechten.In the left pane, expand Local Policies, and then click User Rights Assignment.

  3. Doppelklicken Sie im rechten Bereich auf Durchführen von Volumewartungsaufgaben.In the right pane, double-click Perform volume maintenance tasks.

  4. Klicken Sie auf Benutzer oder Gruppe hinzufügen , und fügen Sie alle Benutzerkonten hinzu, die für Sicherungen verwendet werden.Click Add User or Group and add any user accounts that are used for backups.

  5. Klicken Sie auf Übernehmen, und schließen Sie dann alle Dialogfelder von Lokale Sicherheitsrichtlinie .Click Apply, and then close all Local Security Policy dialog boxes.

Hinweis

Ab SQL Server 2016 (13.x)SQL Server 2016 (13.x) kann diese Berechtigung dem Dienstkonto beim Setup im Rahmen einer Installation erteilt werden.Starting with SQL Server 2016 (13.x)SQL Server 2016 (13.x), this permission can be granted to the service account at install time, during setup. Wenn Sie eine Installation über die Eingabeaufforderung durchführen, fügen Sie das Argument /SQLSVCINSTANTFILEINIT hinzu oder aktivieren im Installationsassistenten das Kontrollkästchen SQL Server-Datenbank-Engine-Dienst Berechtigung zum Ausführen von Volumewartungstasks gewähren.If using the command prompt install, add the /SQLSVCINSTANTFILEINIT argument, or check the box Grant Perform Volume Maintenance Task privilege to SQL Server Database Engine Service in the installation wizard.

Hinweis

Für die Versionen von SQL Server 2012 (11.x)SQL Server 2012 (11.x) SP4 über SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1 bis hin zu SQL Server 2017SQL Server 2017 kann in der DMV sys.dm_server_services die Spalte instant_file_initialization_enabled verwendet werden, um festzustellen, ob die schnelle Dateiinitialisierung aktiviert ist.Starting with SQL Server 2012 (11.x)SQL Server 2012 (11.x) SP4, and SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1 through SQL Server 2017SQL Server 2017, the column instant_file_initialization_enabled in the sys.dm_server_services DMV can be used to identify if instant file initialization is enabled.

RemarksRemarks

Wenn SE_MANAGE_VOLUME_NAME für das Dienststartkonto SQL ServerSQL Server erteilt wurde, wird eine Meldung ähnlich wie die folgende beim Start im SQL ServerSQL Server-Fehlerprotokoll protokolliert:If the SQL ServerSQL Server service startup account is granted SE_MANAGE_VOLUME_NAME, an informational message that resembles the following is logged in the SQL ServerSQL Server error log at startup:

Database Instant File Initialization: enabled. For security and performance considerations see the topic 'Database Instant File Initialization' in SQL Server Books Online. This is an informational message only. No user action is required.

Wenn nicht SE_MANAGE_VOLUME_NAME für das Dienststartkonto SQL ServerSQL Server erteilt wurde, wird eine Meldung ähnlich wie die folgende beim Start im SQL ServerSQL Server-Fehlerprotokoll protokolliert:If the SQL ServerSQL Server service startup account has not been granted SE_MANAGE_VOLUME_NAME, an informational message that resembles the following is logged in the SQL ServerSQL Server error log at startup:

Database Instant File Initialization: disabled. For security and performance considerations see the topic 'Database Instant File Initialization' in SQL Server Books Online. This is an informational message only. No user action is required.

Gilt für: SQL ServerSQL Server (für Versionen von SQL Server 2012 (11.x)SQL Server 2012 (11.x) SP4 über SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2 und SQL Server 2016 (13.x)SQL Server 2016 (13.x) bis hin zu SQL Server 2017SQL Server 2017)Applies to: SQL ServerSQL Server (Starting with SQL Server 2012 (11.x)SQL Server 2012 (11.x) SP4, SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2 and SQL Server 2016 (13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017)

Überlegungen zur SicherheitSecurity Considerations

Da bei Verwendung der schnellen Dateiinitialisierung (Instant File Initialization, IFI) der gelöschte Datenträgerinhalt nur überschrieben wird, wenn neue Daten in die Dateien geschrieben werden, kann ein nicht autorisierter Prinzipal möglicherweise so lange auf den gelöschten Inhalt zugreifen, bis andere Daten in diesen Bereich der Datendatei geschrieben werden.When using Instant File Initialization (IFI), because the deleted disk content is overwritten only as new data is written to the files, the deleted content might be accessed by an unauthorized principal, until some other data writes on that specific area of the data file. Während die Datenbankdatei an die Instanz von SQL ServerSQL Serverangefügt ist, wird diese Gefahr einer Offenlegung von Informationen durch die besitzerverwaltete Zugriffssteuerungsliste (Discretionary Access Control List, DACL) in der Datei verringert.While the database file is attached to the instance of SQL ServerSQL Server, this information disclosure risk is reduced by the discretionary access control list (DACL) on the file. Diese DACL gewährt den Dateizugriff nur für das SQL ServerSQL Server -Dienstkonto und den lokalen Administrator.This DACL allows file access only to the SQL ServerSQL Server service account and the local administrator. Wenn die Datei jedoch getrennt wird, kann möglicherweise ein Benutzer oder Dienst darauf zugreifen, der nicht über SE_MANAGE_VOLUME_NAME verfügt.However, when the file is detached, it may be accessed by a user or service that does not have SE_MANAGE_VOLUME_NAME. Eine ähnliche Betrachtung ergibt sich bei der Sicherung der Datenbank: Der gelöschte Inhalt kann für einen nicht autorisierten Benutzer oder Dienst verfügbar werden, wenn die Sicherungsdatei nicht mit einer entsprechenden DACL geschützt wird.A similar consideration exists when the database is backed up: if the backup file is not protected with an appropriate DACL, the deleted content can become available to an unauthorized user or service.

Außerdem kann es sein, dass ein SQL Server-Administrator Zugriff auf die grundlegenden Inhalte der Seite und bereits gelöschte Inhalte erhält, wenn eine Datei über die schnelle Dateiinitialisierung erstellt wird.Another consideration is that when a file is grown using IFI, a SQL Server administrator could potentially access the raw page contents and see the previously deleted content.

Wenn die Datenbankdateien auf einem Storage Area Network gehostet werden, kann es außerdem sein, dass das Storage Area Network neue Seiten immer als vorinitialisiert anzeigt und die Vorinitialisierung der Seiten durch das Betriebssystem würde einen unnötigen zeitlichen Mehraufwand bedeuten.If the database files are hosted on a storage area network, it is also possible that the storage area network always presents new pages as pre-initialized, and having the operating system re-initialize the pages might be unnecessary overhead.

Hinweis

Wenn SQL ServerSQL Server in einer sicheren physischen Umgebung installiert wird, können die aus der Aktivierung der schnellen Dateiinitialisierung resultierenden Leistungsvorteile das Sicherheitsrisiko überwiegen. Aus diesem Grund werden folgende Empfehlungen gegeben.If SQL ServerSQL Server is installed in a secure physical environment, the performance benefits of enabling instant file initialization can outweigh the security risk and hence the reason for this recommendation.

Wenn Sie sich Gedanken über eine potenzielle Offenlegung von Informationen machen, sollten Sie eine oder beide der folgenden Maßnahmen treffen:If the potential for disclosing deleted content is a concern, you should take one or both of the following actions:

  • Stellen Sie immer sicher, dass alle angebundenen Daten- und Sicherungsdateien über restriktive DACLs verfügen.Always make sure that any detached data files and backup files have restrictive DACLs.
  • Deaktivieren Sie die schnelle Dateiinitialisierung für die Instanz von SQL ServerSQL Server, indem Sie SE_MANAGE_VOLUME_NAME im SQL ServerSQL Server-Dienststartkonto widerrufen.Disable instant file initialization for the instance of SQL ServerSQL Server by revoking SE_MANAGE_VOLUME_NAME from the SQL ServerSQL Server service startup account.

Wichtig

Durch die Deaktivierung der schnellen Dateiinitialisierung verlängert sich die Belegungszeit für Datendateien.Disabling instant file initialization will increase allocation times for data files.

Hinweis

Das Deaktivieren der sofortigen Dateiinitialisierung wirkt sich nur auf Dateien aus, die nach dem Widerrufen des Benutzerrechts erstellt oder vergrößert werden.Disabling instant file initialization only affects files that are created or increased in size after the user right is revoked.

Weitere Informationen finden Sie unterSee Also

CREATE DATABASE (SQL Server Transact-SQL)CREATE DATABASE (SQL Server Transact-SQL)