Vue d'ensemble de la sécurité (Integration Services)Security Overview (Integration Services)

La sécurité dans SQL ServerSQL Server Integration ServicesIntegration Services est constituée de plusieurs couches qui fournissent un environnement de sécurité complet et souple.Security in SQL ServerSQL Server Integration ServicesIntegration Services consists of several layers that provide a rich and flexible security environment. Ces couches de sécurité incluent l’utilisation de signatures numériques, de propriétés de package, de rôles de base de données SQL ServerSQL Server et d’autorisations de système d’exploitation.These security layers include the use of digital signatures, package properties, SQL ServerSQL Server database roles, and operating system permissions. La plupart de ces fonctionnalités de sécurité se répartissent dans les catégories suivantes : identité et contrôle d'accès.Most of these security features fall into the categories of identity and access control.

Limitation des menaces et des risques de vulnérabilitéThreat and Vulnerability Mitigation

Bien que Integration ServicesIntegration Services inclue divers mécanismes de sécurité, les packages et les fichiers que les packages créent ou utilisent peuvent être exploités à des fins malveillantes.Although Integration ServicesIntegration Services includes a variety of security mechanisms, packages and the files that packages create or use could be exploited for malicious purposes.

Le tableau ci-dessous répertorie ces risques ainsi que les mesures proactives que vous pouvez prendre pour réduire ces risques.The following table describes these risks and the proactive steps that you can take to lessen the risks.

Menace ou vulnérabilitéThreat or vulnerability DéfinitionDefinition Limitation des risquesMitigation
Source du packagePackage source La source d'un package correspond à l'individu ou à l'organisation qui a créé le package.The source of a package is the individual or organization that created the package. L'exécution d'un package à partir d'une source inconnue ou non approuvée peut être risquée.Running a package from an unknown or untrusted source might be risky. Identifiez la source d'un package en utilisant une signature numérique et exécutez uniquement des packages provenant de sources connues et approuvées.Identify the source of a package by using a digital signature, and run packages that come from only known, trusted sources. Pour plus d’informations, consultez Identifier la source de packages à l’aide de signatures numériques.For more information, see Identify the Source of Packages with Digital Signatures.
Contenu d'un packagePackage contents Le contenu d'un package inclut les éléments dans le package et leurs propriétés.Package contents include the elements in the package and their properties. Les propriétés peuvent contenir des données sensibles telles qu'un mot de passe ou une chaîne de connexion.The properties can contain sensitive data such as a password or a connection string. Les éléments de package, tels qu'une instruction SQL, peuvent révéler la structure de votre base de données.Package elements such as an SQL statement can reveal the structure of your database. Contrôlez l'accès à un package et au contenu en procédant comme suit :Control access to a package and to the contents by doing the following steps:

1) Pour contrôler l’accès au package lui-même, appliquez les fonctionnalités de sécurité SQL ServerSQL Server aux packages enregistrés dans la base de données msdb d’une instance de SQL ServerSQL Server.1) To control access to the package itself, apply SQL ServerSQL Server security features to packages that are saved to the msdb database in an instance of SQL ServerSQL Server. Aux packages enregistrés dans le système de fichiers, appliquez les fonctionnalités de sécurité du système de fichiers, telles que les listes de contrôle d'accès (ACL).To packages that are saved in the file system, apply file system security features, such as access controls lists (ACLs).

2) Pour contrôler l’accès au contenu du package, définissez le niveau de protection de celui-ci.2) To control access to the package's contents, set the protection level of the package.

Pour plus d’informations, consultez Vue d’ensemble de la sécurité (Integration Services) et Contrôle d’accès pour les données sensibles présentes dans les packages.For more information, see Security Overview (Integration Services) and Access Control for Sensitive Data in Packages.
Sortie d'un packagePackage output Lorsque vous configurez un package de façon à utiliser des configurations, des points de contrôle et une journalisation, le package stocke ces informations en dehors du package.When you configure a package to use configurations, checkpoints, and logging, the package stores this information outside the package. Les informations stockées à l'extérieur du package peuvent contenir des données sensibles.The information that is stored outside the package might contain sensitive data. Pour protéger les configurations et les journaux que le package enregistre dans les tables de la base de données SQL ServerSQL Server , utilisez les fonctionnalités de sécurité SQL ServerSQL Server .To protect configurations and logs that the package saves to SQL ServerSQL Server database tables, use SQL ServerSQL Server security features.

Pour contrôler l'accès aux fichiers, utilisez les listes de contrôle d'accès (ACL) disponibles dans le système de fichiers.To control access to files, use the access control lists (ACLs) available in the file system.

Pour plus d’informations, consultez Accéder aux fichiers utilisés par des packagesFor more information, see Access to Files Used by Packages

Fonctionnalités d'identitéIdentity Features

En implémentant des fonctionnalités d'identité dans vos packages, vous pouvez atteindre l'objectif suivant :By implementing identity features in your packages, you can achieve the following goal:

S'assurer d'ouvrir et d'exécuter uniquement des packages provenant de sources approuvées.Ensure that you only open and run packages from trusted sources.

Pour vous assurer d'ouvrir et d'exécuter uniquement des packages provenant de sources approuvées, vous devez tout d'abord identifier leur source.To ensure that you only open and run packages from trusted sources, you first have to identify the source of packages. Pour ce faire, signez les packages avec des certificats.You can identify the source by signing packages with certificates. Puis, lorsque vous ouvrez ou exécutez le package, vous pouvez vérifier la présence et la validité des signatures numériques à l'aide d' Integration ServicesIntegration Services .Then, when you open or run the packages, you can have Integration ServicesIntegration Services check for the presence and the validity of the digital signatures. Pour plus d’informations, consultez Identifier la source de packages à l’aide de signatures numériques.For more information, see Identify the Source of Packages with Digital Signatures.

Fonctionnalités de contrôle d'accèsAccess Control Features

En implémentant des fonctionnalités d'identité dans vos packages, vous pouvez atteindre l'objectif suivant :By implementing identity features in your packages, you can achieve the following goal:

S'assurer que seuls les utilisateurs autorisés ouvrent et exécutent des packages.Ensure that only authorized users open and run packages.

Pour vous assurer que seuls les utilisateurs autorisés ouvrent et exécutent des packages, vous devez contrôler l'accès aux informations suivantes.To ensure that only authorized users open and run packages, you have to control access to the following information:

  • Contrôler l'accès au contenu des packages, en particulier les données sensibles.Control access to the contents of packages, especially sensitive data.

  • Contrôler l'accès aux packages et configurations de package stockés dans SQL ServerSQL Server.Control access to packages and package configurations that are stored in SQL ServerSQL Server.

  • Contrôler l'accès aux packages et aux fichiers connexes tels que les configurations, journaux et fichiers de point de contrôle stockés dans le système de fichiers.Control accesss to packages and to related files such as configurations, logs, and checkpoint files that are stored in the file system.

  • Contrôler l'accès au service Integration ServicesIntegration Services et aux informations sur les packages que le service affiche dans SQL Server Management StudioSQL Server Management Studio.Control access to the Integration ServicesIntegration Services service and to the information about packages that the service displays in SQL Server Management StudioSQL Server Management Studio.

Contrôle de l'accès au contenu des packagesControlling Access to the Contents of Packages

Pour restreindre l’accès au contenu d’un package, vous pouvez chiffrer le package en définissant sa propriété ProtectionLevel.To help restrict access to the contents of a package, you can encrypt packages by setting the ProtectionLevel property of the package. Vous pouvez définir cette propriété au niveau de protection requis par votre package.You can set this property to the level of protection that your package requires. Par exemple, dans un environnement de développement en équipe, vous pouvez chiffrer un package à l'aide d'un mot de passe uniquement connu des membres de l'équipe qui travaillent sur celui-ci.For example, in a team development environment, you can encrypt a package by using a password that is known only to the team members who work on the package.

Lorsque vous définissez la propriété ProtectionLevel d’un package, Integration ServicesIntegration Services détecte automatiquement les propriétés sensibles et les gère en fonction du niveau de protection spécifié.When you set the ProtectionLevel property of a package, Integration ServicesIntegration Services automatically detects sensitive properties and handles these properties according to the specified package protection level. Par exemple, vous définissez la propriété ProtectionLevel d’un package à un niveau qui chiffre les informations sensibles à l’aide d’un mot de passe.For example, you set the ProtectionLevel property for a package to a level that encrypts sensitive information with a password. Pour ce package, Integration ServicesIntegration Services chiffre automatiquement les valeurs de toutes les propriétés sensibles et n'affichera pas les données correspondantes sans que le mot de passe correct ne soit fourni.For this package, Integration ServicesIntegration Services automatically encrypts the values of all sensitive properties and will not display the corresponding data without the correct password being supplied.

En général, Integration ServicesIntegration Services identifie des propriétés comme étant sensibles si elles contiennent des informations telles qu’un mot de passe ou une chaîne de connexion, ou si ces propriétés correspondent aux variables ou aux nœuds XML générés par la tâche.Typically, Integration ServicesIntegration Services identifies properties as sensitive if those properties contain information, such as a password or a connection string, or if those properties correspond to variables or task-generated XML nodes. Le fait qu' Integration ServicesIntegration Services considère une propriété comme sensible repose sur le fait que le développeur du composant Integration ServicesIntegration Services , tel qu'un gestionnaire de connexions ou une tâche, l'a désignée comme sensible.Whether Integration ServicesIntegration Services considers a property sensitive depends on whether the developer of the Integration ServicesIntegration Services component, such as a connection manager or task, has designated the property as sensitive. Les utilisateurs ne peuvent pas ajouter de propriétés à, ni en supprimer de, la liste des propriétés considérées sensibles. Si vous écrivez des tâches personnalisées, des gestionnaires de connexions ou des composants de flux de données, vous pouvez spécifier les propriétés Integration ServicesIntegration Services à considérer comme sensibles.Users cannot add properties to, nor can they remove properties from, the list of properties that are considered sensitive.If you write custom tasks, connection managers, or data flow components, you can specify which properties Integration ServicesIntegration Services should treat as sensitive.

Pour plus d'informations, consultez Access Control for Sensitive Data in Packages.For more information, see Access Control for Sensitive Data in Packages.

Contrôle de l'accès aux packagesControlling Access to Packages

Vous pouvez enregistrer des packages Integration ServicesIntegration Services dans la base de données d'une instance de SQL ServerSQL Serverou dans le système de fichiers sous la forme de fichiers XML avec l'extension .dtsx.You can save Integration ServicesIntegration Services packages to the msdb database in an instance of SQL ServerSQL Server, or to the file system as XML files that have the .dtsx file name extension. Pour plus d’informations, consultez Enregistrer des packages.For more information, see Save Packages.

Enregistrement de packages dans la base de données msdbSaving Packages to the msdb Database

L'enregistrement des packages dans la base de données msdb permet d'assurer la sécurité au niveau du serveur, de la base de données et de la table.Saving the packages to the msdb database helps provide security at the server, database, and table levels. Dans la base de données msdb, les packages Integration ServicesIntegration Services sont stockés dans la table sysssispackages.In the msdb database, Integration ServicesIntegration Services packages are stored in the sysssispackages table. Les packages étant enregistrés dans les tables sysssispackages et sysdtspackages de la base de données msdb, ils sont automatiquement sauvegardés lors de la sauvegarde de la base de données msdb.Because the packages are saved to the sysssispackages and sysdtspackages tables in the msdb database, the packages are automatically backed up when you backup the msdb database.

SQL ServerSQL Server Vous pouvez également protéger les packages stockés dans la base de données msdb en appliquant des rôles au niveau de la base de données Integration ServicesIntegration Services . packages stored in the msdb database can also be protected by applying the Integration ServicesIntegration Services database-level roles. Integration ServicesIntegration Services inclut trois rôles fixes au niveau de la base de données : db_ssisadmin, db_ssisltduser et db_ssisoperator pour le contrôle de l’accès aux packages. includes three fixed database-level roles db_ssisadmin, db_ssisltduser, and db_ssisoperator for controlling access to packages. Un rôle de lecture et d'écriture peut être associé à chaque package.A reader and a writer role can be associated with each package. Vous pouvez également définir des rôles personnalisés au niveau de la base de données pour les utiliser dans les packages Integration ServicesIntegration Services .You can also define custom database-level roles to use in Integration ServicesIntegration Services packages. Les rôles ne peuvent être implémentés que sur les packages enregistrés dans la base de données msdb d'une instance de SQL ServerSQL Server.Roles can be implemented only on packages that are saved to the msdb database in an instance of SQL ServerSQL Server. Pour plus d’informations, consultez Rôles Integration Services (Service SSIS).For more information, see Integration Services Roles (SSIS Service).

Enregistrement de packages dans le système de fichiersSaving Packages to the File System

Si vous stockez des packages dans le système de fichiers plutôt que dans la base de données msdb, veillez à sécuriser les fichiers de package et les dossiers qui les contiennent.If you store packages to the file system instead of in the msdb database, make sure to secure the package files and the folders that contain package files.

Contrôle de l'accès aux fichiers utilisés par des packagesControlling Access to Files Used by Packages

Les packages configurés pour utiliser des configurations, des points de contrôle et une journalisation génèrent des informations stockées en dehors du package.Packages that have been configured to use configurations, checkpoints, and logging generate information that is stored outside the package. Ces informations peuvent être sensibles et doivent être protégées.This information might be sensitive and should be protected. Les fichiers de point de contrôle ne peuvent être enregistrés que dans le système de fichiers, mais les configurations et les journaux peuvent l'être dans le système de fichiers ou dans les tables d'une base de données SQL ServerSQL Server .Checkpoint files can be saved only to the file system, but configurations and logs can be saved to the file system or to tables in a SQL ServerSQL Server database. Les configurations et les journaux enregistrés dans SQL ServerSQL Server bénéficient de la sécurité SQL ServerSQL Server , mais les informations écrites dans le système de fichiers requièrent une sécurité supplémentaire.Configurations and logs that are saved to SQL ServerSQL Server are subject to SQL ServerSQL Server security, but information written to the file system requires additional security.

Pour plus d’informations, consultez Accéder aux fichiers utilisés par des packages.For more information, see Access to Files Used by Packages.

Stockage sécurisé des configurations de packageStoring Package Configurations Securely

Les configurations de package peuvent être enregistrées dans une table d'une base de données SQL ServerSQL Server ou dans le système de fichiers.Package configurations can be saved to a table in a SQL ServerSQL Server database or to the file system.

Les configurations peuvent être enregistrées dans n'importe qu'elle base de données SQL ServerSQL Server , et non pas uniquement dans la base de données msdb.Configurations can be saved to any SQL ServerSQL Server database, not just the msdb database. Vous pouvez donc spécifier la base de données qui sert de référentiel de configurations de package.Thus, you are able to specify which database serves as the repository of package configurations. Vous pouvez également spécifier le nom de la table qui contiendra les configurations : Integration ServicesIntegration Services crée alors automatiquement la table avec la structure correcte.You can also specify the name of the table that will contain the configurations, and Integration ServicesIntegration Services automatically creates the table with the correct structure. L'enregistrement des configurations dans une table permet d'assurer la sécurité au niveau du serveur, de la base de données et de la table.Saving the configurations to a table makes it possible to provide security at the server, database, and table levels. En outre, les configurations enregistrées dans SQL ServerSQL Server sont automatiquement sauvegardées lors de la sauvegarde de la base de données.In addition, configurations that are saved to SQL ServerSQL Server are automatically backed up when you back up the database.

Si vous stockez des configurations dans le système de fichiers plutôt que dans SQL ServerSQL Server, veillez à sécuriser les dossiers qui contiennent les fichiers de configuration de package.If you store configurations in the file system instead of in SQL ServerSQL Server, make sure to secure the folders that contain the package configuration files.

Pour plus d'informations sur les configurations, consultez Package Configurations.For more information about configurations, see Package Configurations.

Contrôle de l'accès au service Integration ServicesControlling Access to the Integration Services Service

SQL Server Management StudioSQL Server Management Studio utilise le service SQL ServerSQL Server pour établir la liste des packages stockés. uses the SQL ServerSQL Server service to list stored packages. Pour empêcher tout utilisateur non autorisé de consulter des informations sur les packages stockées sur des ordinateurs locaux et distants, et par conséquent d'accéder à des informations privées, restreignez l'accès aux ordinateurs qui exécutent le service SQL ServerSQL Server .To prevent unauthorized users from viewing information about packages that are stored on local and remote computers, and thereby learning private information, restrict access to computers that run the SQL ServerSQL Server service.

Pour plus d’informations, consultez Accéder au service Integration Services.For more information, see Access to the Integration Services Service.

Accéder aux fichiers utilisés par des packages Access to Files Used by Packages

Le niveau de protection de package ne protège pas les fichiers stockés en dehors du package.The package protection level does not protect files that are stored outside the package. Il s'agit des fichiers suivants :These files include the following:

  • Fichiers de configurationConfiguration files

  • fichiers de point de contrôleCheckpoint files

  • Fichiers journauxLog files

    Ces fichiers doivent être protégés séparément, notamment s'ils contiennent des informations sensibles.These files must be protected separately, especially if they include sensitive information.

Fichiers de configurationConfiguration Files

Si une configuration contient des informations sensibles, telles que des informations de connexion et de mot de passe, vous devez penser à enregistrer la configuration dans SQL ServerSQL Server, ou à utiliser une liste de contrôle d’accès pour limiter l’accès à l’emplacement ou au dossier de stockage des fichiers et pour autoriser l’accès uniquement à certains comptes.If you have sensitive information in a configuration, such as login and password information, you should consider saving the configuration to SQL ServerSQL Server, or use an access control list (ACL) to restrict access to the location or folder where you store the files and allow access only to certain accounts. En règle générale, vous accordez l'accès aux comptes que vous autorisez à exécuter des packages et à ceux qui gèrent et résolvent les problèmes des packages, ce qui peut comprendre l'inspection du contenu des fichiers de configuration, des fichiers de point de contrôle et des fichiers journaux.Typically, you would grant access to the accounts that you permit to run packages, and to the accounts that manage and troubleshoot packages, which may include reviewing the contents of configuration, checkpoint, and log files. SQL ServerSQL Server fournit le stockage le plus sécurisé, car il offre une protection aux niveaux du serveur et des bases de données. provides the more secure storage because it offers protection at the server and database levels. Pour enregistrer des configurations dans SQL ServerSQL Server, vous utilisez le type de configuration SQL ServerSQL Server .To save configurations to SQL ServerSQL Server, you use the SQL ServerSQL Server configuration type. Pour enregistrer dans le système de fichiers, vous utilisez le type de configuration XML.To save to the file system, you use the XML configuration type.

Pour plus d’informations, consultez Configurations de package, Créer des configurations de packageet Considérations sur la sécurité pour une installation SQL Server.For more information, see Package Configurations, Create Package Configurations, and Security Considerations for a SQL Server Installation.

fichiers de point de contrôleCheckpoint Files

De même, si le fichier de point de contrôle utilisé par le package contient des informations sensibles, vous devez utiliser une liste de contrôle d'accès pour sécuriser l'emplacement ou le dossier de stockage du fichier.Similarly, if the checkpoint file that the package uses includes sensitive information, you should use an access control list (ACL) to secure the location or folder where you store the file. Les fichiers de points de contrôle contiennent des informations d'état relatives à la progression du package, ainsi que les valeurs actuelles de certaines variables.Checkpoint files save current state information on the progress of the package as well as the current values of variables. Par exemple, le package peut inclure une variable personnalisée qui contient un numéro de téléphone.For example, the package may include a custom variable that contains a telephone number. Pour plus d'informations, consultez Restart Packages by Using Checkpoints.For more information, see Restart Packages by Using Checkpoints.

Fichiers journauxLog Files

Les entrées de journaux qui sont écrites dans le système de fichiers doivent également être sécurisées au moyen d'une liste de contrôle d'accès.Log entries that are written to the file system should also be secured using an access control list (ACL). Elles peuvent aussi être stockées dans des tables SQL ServerSQL Server et protégées par la sécurité SQL ServerSQL Server .Log entries can also be stored in SQL ServerSQL Server tables and protected by SQL ServerSQL Server security. Les entrées de journaux peuvent inclure des informations sensibles. Par exemple, si le package contient une tâche d'exécution SQL qui construit une instruction SQL faisant référence à un numéro de téléphone, l'entrée de journal de l'instruction SQL inclut le numéro de téléphone.Log entries may include sensitive information, For example, if the package contains an Execute SQL task that constructs an SQL statement that refers to a telephone number, the log entry for the SQL statement includes the telephone number. L'instruction SQL peut également révéler des informations confidentielles relatives à des noms de tables et de colonnes dans des bases de données.The SQL statement may also reveal private information about table and column names in databases. Pour plus d’informations, consultez Journalisation d’Integration Services (SSIS).For more information, see Integration Services (SSIS) Logging.

Accéder au service Integration Services Access to the Integration Services Service

Les niveaux de protection des packages peuvent définir des restrictions quant aux utilisateurs autorisés à modifier et exécuter un package.Package protection levels can limit who is allowed to edit and execute a package. Une protection supplémentaire est nécessaire pour limiter les utilisateurs autorisés à afficher la liste des packages actuellement en cours d’exécution sur un serveur et ceux qui peuvent arrêter les packages en cours d’exécution dans SQL Server Management StudioSQL Server Management Studio.Additional protection is needed to limit who can view the list of packages currently running on a server and who can stop currently executing packages in SQL Server Management StudioSQL Server Management Studio.

SQL Server Management StudioSQL Server Management Studio utilise le service SQL ServerSQL Server pour établir la liste des packages en cours d’exécution. uses the SQL ServerSQL Server service to list running packages. Les membres du groupe Administrateurs de Windows peuvent afficher et arrêter tous les packages en cours d'exécution.Members of the Windows Administrators group can view and stop all currently running packages. Les utilisateurs n'appartenant pas au groupe Administrateurs de Windows ne peuvent afficher et arrêter que les packages qu'ils ont démarrés.Users who are not members of the Administrators group can view and stop only packages that they started.

Il est important de restreindre l'accès aux ordinateurs qui exécutent un service SQL ServerSQL Server , notamment un service SQL ServerSQL Server qui peut énumérer des dossiers distants.It is important to restrict access to computers that run an SQL ServerSQL Server service, especially an SQL ServerSQL Server service that can enumerate remote folders. Tout utilisateur authentifié peut demander l'énumération des packages.Any authenticated user can request the enumeration of packages. Même si le service ne trouve pas le service, il énumère les dossiers.Even if the service does not find the service, the service enumerates folders. Ces noms de dossiers peuvent être utilisés par un utilisateur malveillant.These folder names may be useful to a malicious user. Si un administrateur a configuré le service pour qu'il énumère les dossiers sur un ordinateur distant, les utilisateurs peuvent également voir des noms de dossiers qu'ils ne pourraient pas voir en temps normal.If an administrator has configured the service to enumerate folders on a remote machine, users may also be able to see folder names that they would normally not be able to see.

La liste suivante contient des liens vers les rubriques qui indiquent comment effectuer une tâche particulière relative à la sécurité.The following list contains links to topics that show you how to perform a certain task pertaining to the security.