Initialisation des fichiers de base de donnéesDatabase File Initialization

S’APPLIQUE À : ouiSQL Server nonAzure SQL Database nonAzure Synapse Analytics (SQL DW) nonParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Les fichiers de données et les fichiers journaux sont initialisés pour remplacer toutes les données existantes laissées sur le disque par des fichiers précédemment supprimés.Data and log files are initialized to overwrite any existing data left on the disk from previously deleted files. Les fichiers de données et les fichiers journaux sont d’abord initialisés en étant remplis avec des zéros quand vous effectuez une des opérations suivantes :Data and log files are first initialized by zeroing the files (filling with zeros) when you perform one of the following operations:

  • Créer une base de données.Create a database.
  • Ajouter des fichiers journaux ou de données à une base de données existante.Add data or log files, to an existing database.
  • Augmenter la taille d'un fichier existant (opérations de croissance automatique incluses).Increase the size of an existing file (including autogrow operations).
  • Restaurer une base de données ou un groupe de fichiers.Restore a database or filegroup.

L'initialisation des fichiers augmente le temps d'exécution de ces opérations.File initialization causes these operations to take longer. En revanche, quand les données sont écrites dans les fichiers pour la première fois, le système d'exploitation n'a pas besoin de remplir ces fichiers à l'aide de zéros.However, when data is written to the files for the first time, the operating system does not have to fill the files with zeros.

Initialisation instantanée de fichiersInstant File Initialization (IFI)

Dans SQL ServerSQL Server, les fichiers de données peuvent être initialisés instantanément pour éviter les opérations de remplissage avec des zéros.In SQL ServerSQL Server, data files can be initialized instantaneously to avoid zeroing operations. L’initialisation instantanée des fichiers permet une exécution rapide des opérations mentionnées plus haut.Instant file initialization allows for fast execution of the previously mentioned file operations. L'initialisation instantanée des fichiers récupère l'espace disque utilisé sans le remplir avec des zéros.Instant file initialization reclaims used disk space without filling that space with zeros. À la place, le contenu du disque est remplacé à mesure que de nouvelles données sont écrites dans les fichiers.Instead, disk content is overwritten as new data is written to the files. Les fichiers journaux ne peuvent pas être initialisés instantanément.Log files cannot be initialized instantaneously.

Notes

L’initialisation instantanée des fichiers n’est disponible que sur MicrosoftMicrosoftWindows XP ProfessionnelWindows XP Professional ou Windows Server 2003Windows Server 2003 (ou versions ultérieures).Instant file initialization is available only on MicrosoftMicrosoftWindows XP ProfessionnelWindows XP Professional or Windows Server 2003Windows Server 2003 or later versions.

Important

L’initialisation instantanée de fichiers est disponible seulement pour les fichiers de données.Instant file initialization is available only for data files. Les fichiers journaux sont toujours remplis de zéros à la création ou lors d’une augmentation de leur taille.Log files will always be zeroed when being created, or growing in size.

L’initialisation instantanée de fichiers est disponible seulement que si l’autorisation SE_MANAGE_VOLUME_NAME a été octroyée au compte de démarrage de service SQL ServerSQL Server.Instant file initialization is only available if the SQL ServerSQL Server service startup account has been granted SE_MANAGE_VOLUME_NAME. Les membres du groupe Administrateurs Windows disposent de ce droit et peuvent l’attribuer aux autres utilisateurs en les ajoutant à la stratégie de sécurité Effectuer les tâches de maintenance de volume .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.

Important

L’utilisation de certaines fonctionnalités, comme Transparent Data Encryption (TDE), peuvent empêcher l’initialisation instantanée de fichiers.Some feature usage, such as Transparent Data Encryption (TDE), can prevent Instant File Initialization.

Pour accorder l'autorisation Perform volume maintenance tasks à un compteTo grant an account the Perform volume maintenance tasks permission:

  1. Sur l’ordinateur où le fichier de données doit être créé, ouvrez l’application Stratégie de sécurité locale (secpol.msc).On the computer where the data file will be created, open the Local Security Policy application (secpol.msc).

  2. Dans le volet gauche, développez Stratégies locales, puis cliquez sur Attribution des droits utilisateur.In the left pane, expand Local Policies, and then click User Rights Assignment.

  3. Dans le volet droit, double-cliquez sur Effectuer des tâches de maintenance sur les volumes.In the right pane, double-click Perform volume maintenance tasks.

  4. Cliquez sur Ajouter un utilisateur ou un groupe et ajoutez le compte qui exécute le service SQL Server.Click Add User or Group and add the account that runs the SQL Server service.

  5. Cliquez sur Appliquer, puis fermez toutes les boîtes de dialogue Stratégie de sécurité locale .Click Apply, and then close all Local Security Policy dialog boxes.

  6. Redémarrez le service SQL Server.Restart the SQL Server service.

Notes

À compter de SQL Server 2016 (13.x)SQL Server 2016 (13.x), vous pouvez accorder cette autorisation au compte de service au moment de l’installation.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. Si vous effectuez l’installation depuis une invite de commandes, ajoutez l’argument /SQLSVCINSTANTFILEINIT ou cochez la case Accorder le privilège Effectuer une tâche de maintenance en volume au service Moteur de base de données SQL Server dans l’Assistant Installation.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.

Notes

À compter de SQL Server 2012 (11.x)SQL Server 2012 (11.x) SP4, et de SQL Server 2016 (13.x)SQL Server 2016 (13.x) SP1 jusqu’à SQL ServerSQL Server, vous pouvez utiliser la colonne instant_file_initialization_enabled dans la vue de gestion dynamique sys.dm_server_services pour déterminer si l’initialisation instantanée de fichiers est activée.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 ServerSQL Server, the column instant_file_initialization_enabled in the sys.dm_server_services DMV can be used to identify if instant file initialization is enabled.

NotesRemarks

Si le compte de démarrage de service SQL ServerSQL Server dispose de l’autorisation SE_MANAGE_VOLUME_NAME, un message d’information similaire au suivant est journalisé dans le journal des erreurs SQL ServerSQL Server au démarrage :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.

Si le compte de démarrage de service SQL ServerSQL Server ne dispose pas de l’autorisation SE_MANAGE_VOLUME_NAME, un message d’information similaire au suivant est journalisé dans le journal des erreurs SQL ServerSQL Server au démarrage :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.

S’applique à : SQL ServerSQL Server (à compter de SQL Server 2012 (11.x)SQL Server 2012 (11.x) SP4, SQL Server 2014 (12.x)SQL Server 2014 (12.x) SP2 et de SQL Server 2016 (13.x)SQL Server 2016 (13.x) jusqu’à SQL ServerSQL Server)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 ServerSQL Server)

Considérations relatives à la sécuritéSecurity Considerations

Quand vous utilisez l’initialisation instantanée de fichiers (IFI), comme le contenu du disque supprimé n’est remplacé qu’au moment où de nouvelles données sont écrites dans les fichiers, il est éventuellement accessible à un principal non autorisé jusqu’à ce que d’autres données soient écrites sur cette zone spécifique du fichier de données.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. Même si le fichier de base de données est attaché à l’instance de SQL ServerSQL Server, le risque de divulgation de ces informations est limité par la liste de contrôle d’accès discrétionnaire (DACL, Discretionary Access Control List) du fichier.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. Cette liste DACL n'autorise l'accès au fichier qu'à l'administrateur local et au compte de service SQL ServerSQL Server .This DACL allows file access only to the SQL ServerSQL Server service account and the local administrator. Cependant, quand le fichier est détaché, un utilisateur ou un service ne bénéficiant pas de l’autorisation SE_MANAGE_VOLUME_NAME peut y accéder.However, when the file is detached, it may be accessed by a user or service that does not have SE_MANAGE_VOLUME_NAME. Cette situation se présente aussi quand la base de données est sauvegardée : si le fichier de sauvegarde n’est pas protégé par une liste DACL appropriée, le contenu supprimé peut devenir accessible à un utilisateur ou à un service non autorisé.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.

Une autre considération est que quand la taille est augmentée avec IFI, un administrateur SQL Server peut potentiellement accéder au contenu de la page brute et voir le contenu précédemment supprimé.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.

Si les fichiers de base de données sont hébergés sur un réseau de zone de stockage, il est également possible que le réseau de zone de stockage présente toujours les nouvelles pages préinitialisées. Or, laisser le système d’exploitation réinitialiser les pages peut représenter une charge supplémentaire non nécessaire.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.

Notes

Si SQL ServerSQL Server est installé dans un environnement physique sécurisé, les gains de performance de l’activation de l’initialisation instantanée de fichiers peuvent primer sur les risques de sécurité et, donc, justifier cette recommandation.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.

Si le risque de divulgation du contenu supprimé constitue un problème, effectuez l’une et/ou l’autre des actions suivantes :If the potential for disclosing deleted content is a concern, you should take one or both of the following actions:

  • Assurez-vous toujours que les fichiers de sauvegarde et les fichiers de données détachés possèdent des listes DACL restrictives.Always make sure that any detached data files and backup files have restrictive DACLs.
  • Désactivez l’initialisation instantanée des fichiers pour l’instance de SQL ServerSQL Server en révoquant l’autorisation SE_MANAGE_VOLUME_NAME au compte de démarrage du service SQL ServerSQL Server.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.

Important

La désactivation de l’initialisation instantanée de fichiers augmente les durées d’allocation des fichiers de données.Disabling instant file initialization will increase allocation times for data files.

Notes

La désactivation de l'initialisation instantanée des fichiers n'affecte que les fichiers créés ou dont la taille a augmenté après la révocation du droit de l'utilisateur.Disabling instant file initialization only affects files that are created or increased in size after the user right is revoked.

Voir aussiSee Also

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