Panoramica sulla sicurezza (Integration Services)Security Overview (Integration Services)

In SQL ServerSQL Server Integration ServicesIntegration Services la sicurezza è costituita da diversi livelli che forniscono un ambiente di sicurezza protetto e flessibile.Security in SQL ServerSQL Server Integration ServicesIntegration Services consists of several layers that provide a rich and flexible security environment. Questi livelli di sicurezza includono l'uso di firme digitali, proprietà dei pacchetti, ruoli di database SQL ServerSQL Server e autorizzazioni del sistema operativo.These security layers include the use of digital signatures, package properties, SQL ServerSQL Server database roles, and operating system permissions. La maggior parte di queste caratteristiche di sicurezza rientra nelle categorie di identità e di controllo dell'accesso.Most of these security features fall into the categories of identity and access control.

Attenuazione di minacce e vulnerabilitàThreat and Vulnerability Mitigation

Sebbene in Integration ServicesIntegration Services siano inclusi diversi meccanismi di sicurezza, i pacchetti e i file che da questi vengono creati o usati potrebbero essere usati da utenti malintenzionati.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.

Nelle tabelle seguenti vengono illustrati i rischi e le azioni che è possibile intraprendere per ridurli.The following table describes these risks and the proactive steps that you can take to lessen the risks.

Minaccia o vulnerabilitàThreat or vulnerability DefinizioneDefinition Strategia di riduzione del rischioMitigation
Origine pacchettoPackage source L'origine di un pacchetto è l'utente singolo o l'organizzazione che lo ha creato.The source of a package is the individual or organization that created the package. L'esecuzione di un pacchetto da un'origine ignota o non attendibile potrebbe essere rischiosa.Running a package from an unknown or untrusted source might be risky. Identificare l'origine di un pacchetto utilizzando una firma digitale ed eseguire pacchetti provenienti solo da origini note e attendibili.Identify the source of a package by using a digital signature, and run packages that come from only known, trusted sources. Per altre informazioni, vedere Identificazione dell'origine dei pacchetti con firme digitali.For more information, see Identify the Source of Packages with Digital Signatures.
Contenuto del pacchettoPackage contents Nel pacchetto sono inclusi gli elementi del pacchetto e le rispettive proprietà.Package contents include the elements in the package and their properties. Tali proprietà possono contenere dati sensibili, ad esempio una password o una stringa di connessione.The properties can contain sensitive data such as a password or a connection string. Gli elementi del pacchetto, ad esempio un'istruzione SQL, possono rivelare la struttura del database.Package elements such as an SQL statement can reveal the structure of your database. Controllare l'accesso a un pacchetto e al relativo contenuto eseguendo i passaggi seguenti:Control access to a package and to the contents by doing the following steps:

1) Per controllare l'accesso al pacchetto stesso, applicare caratteristiche di sicurezza di SQL ServerSQL Server ai pacchetti salvati nel database msdb in un'istanza di 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. Ai pacchetti salvati nel file system applicare le caratteristiche di sicurezza del file system, ad esempio elenchi di controllo di accesso (ACL).To packages that are saved in the file system, apply file system security features, such as access controls lists (ACLs).

2) Per controllare l'accesso al contenuto del pacchetto, impostarne il livello di protezione.2) To control access to the package's contents, set the protection level of the package.

Per altre informazioni, vedere Panoramica sulla sicurezza (Integration Services) e Controllo dell'accesso per dati sensibili nei pacchetti.For more information, see Security Overview (Integration Services) and Access Control for Sensitive Data in Packages.
Output di pacchettoPackage output Quando si configura un pacchetto per l'utilizzo di configurazioni, checkpoint e registrazione, le informazioni vengono archiviate all'esterno del pacchetto stesso.When you configure a package to use configurations, checkpoints, and logging, the package stores this information outside the package. Tali informazioni potrebbero contenere dati sensibili.The information that is stored outside the package might contain sensitive data. Per proteggere le configurazioni e le registrazioni che il pacchetto salva nelle tabelle di database di SQL ServerSQL Server , usare le caratteristiche di sicurezza di SQL ServerSQL Server .To protect configurations and logs that the package saves to SQL ServerSQL Server database tables, use SQL ServerSQL Server security features.

Per controllare l'accesso ai file, utilizzare gli elenchi di controllo di accesso (ACL) disponibili nel file system.To control access to files, use the access control lists (ACLs) available in the file system.

Per altre informazioni, vedere Accesso ai file utilizzati dai pacchettiFor more information, see Access to Files Used by Packages

Caratteristiche di identitàIdentity Features

Implementando le caratteristiche di identità nei pacchetti, è possibile raggiungere l'obiettivo seguente:By implementing identity features in your packages, you can achieve the following goal:

Aprire ed eseguire i pacchetti solo da origini attendibili.Ensure that you only open and run packages from trusted sources.

Per aprire ed eseguire i pacchetti solo da origini attendibili, è necessario identificare innanzitutto l'origine dei pacchetti.To ensure that you only open and run packages from trusted sources, you first have to identify the source of packages. È possibile identificare l'origine dei pacchetti tramite la firma con certificati.You can identify the source by signing packages with certificates. Quando si aprono o si eseguono i pacchetti, è possibile impostare Integration ServicesIntegration Services in modo che verifichi la presenza e la validità delle firme digitali.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. Per altre informazioni, vedere Identificazione dell'origine dei pacchetti con firme digitali.For more information, see Identify the Source of Packages with Digital Signatures.

Caratteristiche di controllo dell'accessoAccess Control Features

Implementando le caratteristiche di identità nei pacchetti, è possibile raggiungere l'obiettivo seguente:By implementing identity features in your packages, you can achieve the following goal:

Assicurarsi che i pacchetti vengano aperti ed eseguiti solo da utenti autorizzati.Ensure that only authorized users open and run packages.

Per assicurarsi che i pacchetti vengano aperti ed eseguiti solo da utenti autorizzati, è necessario controllare l'accesso alle informazioni seguenti:To ensure that only authorized users open and run packages, you have to control access to the following information:

  • Controllare l'accesso al contenuto dei pacchetti, soprattutto ai dati sensibili.Control access to the contents of packages, especially sensitive data.

  • Controllare l'accesso ai pacchetti e alle configurazioni dei pacchetti archiviate in SQL ServerSQL Server.Control access to packages and package configurations that are stored in SQL ServerSQL Server.

  • Controllare l'accesso ai pacchetti e ai file correlati, quali configurazioni, log e file di checkpoint, archiviati nel file system.Control accesss to packages and to related files such as configurations, logs, and checkpoint files that are stored in the file system.

  • Controllare l'accesso al servizio Integration ServicesIntegration Services e alle informazioni sui pacchetti visualizzate dal servizio in 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.

Controllo dell'accesso al contenuto dei pacchettiControlling Access to the Contents of Packages

Per limitare l'accesso al contenuto di un pacchetto, è possibile crittografare i pacchetti impostando la proprietà ProtectionLevel del pacchetto.To help restrict access to the contents of a package, you can encrypt packages by setting the ProtectionLevel property of the package. Questa proprietà può essere impostata sul livello di protezione richiesto dal pacchetto.You can set this property to the level of protection that your package requires. Ad esempio, nell'ambiente di sviluppo di un gruppo di lavoro è possibile crittografare un pacchetto impostando una password nota solo ai membri del gruppo che lavorano al pacchetto.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.

Quando si imposta la proprietà ProtectionLevel di un pacchetto, Integration ServicesIntegration Services individua automaticamente le proprietà riservate e le gestisce in base al livello di protezione pacchetto specificato.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. Impostare ad esempio la proprietà ProtectionLevel per un pacchetto su un livello che crittografa le informazioni riservate con una password.For example, you set the ProtectionLevel property for a package to a level that encrypts sensitive information with a password. Per questo pacchetto, in Integration ServicesIntegration Services vengono crittografati automaticamente i valori di tutte le proprietà riservate e i dati corrispondenti verranno visualizzati solo se viene fornita la password corretta.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.

In genere, Integration ServicesIntegration Services identifica le proprietà come riservate se contengono informazioni, ad esempio una password o una stringa di connessione, o se corrispondono a variabili o a nodi XML generati dall'attività.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. In Integration ServicesIntegration Services una proprietà viene considerata riservata a seconda se lo sviluppatore del componente di Integration ServicesIntegration Services , ad esempio una gestione connessione o un'attività, abbia definito la proprietà come riservata.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. Gli utenti non possono aggiungere proprietà all'elenco di proprietà considerate riservate, né possono rimuoverle. Se si scrivono attività, gestioni connessione o componenti del flusso di dati personalizzati, è possibile specificare le proprietà che devono essere considerate riservate in Integration ServicesIntegration Services .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.

Per altre informazioni, vedere Access Control for Sensitive Data in Packages.For more information, see Access Control for Sensitive Data in Packages.

Controllo dell'accesso ai pacchettiControlling Access to Packages

I pacchetti di Integration ServicesIntegration Services possono essere salvati nel database msdb in un'istanza di SQL ServerSQL Servero nel file system come file XML con estensione 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. Per altre informazioni, vedere Salvataggio di pacchetti.For more information, see Save Packages.

Salvataggio dei pacchetti nel database msdbSaving Packages to the msdb Database

Con il salvataggio dei pacchetti nel database msdb la sicurezza viene implementata a livello di server, di database e di tabella.Saving the packages to the msdb database helps provide security at the server, database, and table levels. Nel database msdb i pacchetti Integration ServicesIntegration Services vengono archiviati nella tabella sysssispackages.In the msdb database, Integration ServicesIntegration Services packages are stored in the sysssispackages table. Poiché i pacchetti vengono salvati nelle tabelle sysssispackages e sysdtspackages del database msdb, quando si esegue il backup del database msdb automaticamente viene eseguito il backup dei pacchetti.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 - I pacchetti archiviati nel database msdb possono essere protetti anche applicando i ruoli a livello di database di 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 include i tre ruoli predefiniti a livello di database db_ssisadmin, db_ssisltduser e db_ssisoperator per il controllo dell'accesso ai pacchetti. includes three fixed database-level roles db_ssisadmin, db_ssisltduser, and db_ssisoperator for controlling access to packages. A ogni pacchetto è possibile associare un ruolo di lettore e un ruolo di scrittore.A reader and a writer role can be associated with each package. È inoltre possibile definire ruoli personalizzati a livello di database da usare nei pacchetti di Integration ServicesIntegration Services .You can also define custom database-level roles to use in Integration ServicesIntegration Services packages. I ruoli possono essere implementati solo nei pacchetti salvati nel database msdb in un'istanza di SQL ServerSQL Server.Roles can be implemented only on packages that are saved to the msdb database in an instance of SQL ServerSQL Server. Per altre informazioni, vedere Ruoli Integration Services (servizio SSIS).For more information, see Integration Services Roles (SSIS Service).

Salvataggio di pacchetti nel file systemSaving Packages to the File System

Se i pacchetti vengono archiviati nel file system anziché nel database msdb, è necessario proteggere i file di pacchetto e le cartelle che li contengono.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.

Controllo dell'accesso ai file utilizzati dai pacchettiControlling Access to Files Used by Packages

I pacchetti configurati per l'utilizzo di configurazioni, checkpoint e registrazione generano informazioni che vengono archiviate all'esterno dei pacchetti stessi.Packages that have been configured to use configurations, checkpoints, and logging generate information that is stored outside the package. Tali informazioni potrebbero essere riservate e devono essere pertanto protette.This information might be sensitive and should be protected. I file di checkpoint possono essere salvati solo nel file system, mentre le configurazione e i log possono essere salvati sia nel file system che nelle tabelle di un database di 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. Le configurazioni e i log salvati in SQL ServerSQL Server vengono protetti tramite la sicurezza di SQL ServerSQL Server , ma per le informazioni scritte ne file system è necessario implementare livelli di sicurezza aggiuntivi.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.

Per altre informazioni, vedere Accesso ai file utilizzati dai pacchetti.For more information, see Access to Files Used by Packages.

Archiviazione sicura delle configurazioni del pacchettoStoring Package Configurations Securely

Le configurazioni dei pacchetti possono essere salvate in una tabella in un database di SQL ServerSQL Server o nel file system.Package configurations can be saved to a table in a SQL ServerSQL Server database or to the file system.

Le configurazioni possono essere salvate in qualsiasi database di SQL ServerSQL Server , non solo nel database msdb.Configurations can be saved to any SQL ServerSQL Server database, not just the msdb database. È quindi possibile specificare quale database utilizzare come repository delle configurazioni dei pacchetti.Thus, you are able to specify which database serves as the repository of package configurations. È inoltre possibile specificare il nome della tabella in cui includere le configurazioni, la quale verrà creata automaticamente in Integration ServicesIntegration Services con la struttura corretta.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. Con il salvataggio delle configurazioni in una tabella la sicurezza viene implementata a livello di server, di database e di tabella.Saving the configurations to a table makes it possible to provide security at the server, database, and table levels. Inoltre, per le configurazioni salvate in SQL ServerSQL Server viene eseguito automaticamente il backup quando si esegue il backup del database.In addition, configurations that are saved to SQL ServerSQL Server are automatically backed up when you back up the database.

Se le configurazioni vengono archiviate nel file system anziché in SQL ServerSQL Server, è necessario proteggere le cartelle contenenti i file di configurazione dei pacchetti.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.

Per ulteriori informazioni sulle configurazioni, vedere Package Configurations.For more information about configurations, see Package Configurations.

Controllo dell'accesso al servizio Integration ServicesControlling Access to the Integration Services Service

SQL Server Management StudioSQL Server Management Studio l'elenco dei pacchetti archiviati viene visualizzato tramite il servizio SQL ServerSQL Server . uses the SQL ServerSQL Server service to list stored packages. Per impedire agli utenti non autorizzati di visualizzare informazioni sui pacchetti archiviati in computer locali e remoti, acquisendo quindi informazioni private, limitare l'accesso ai computer in cui viene eseguito il servizio 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.

Per altre informazioni, vedere Accesso al servizio Integration Services.For more information, see Access to the Integration Services Service.

Accesso ai file utilizzati dai pacchetti Access to Files Used by Packages

Il livello di protezione del pacchetto non protegge i file archiviati al di fuori del pacchetto.The package protection level does not protect files that are stored outside the package. ovvero i file seguenti:These files include the following:

  • File di configurazioneConfiguration files

  • file del checkpointCheckpoint files

  • File di logLog files

    Questi file devono essere protetti separatamente, soprattutto se includono informazioni riservate.These files must be protected separately, especially if they include sensitive information.

File di configurazioneConfiguration Files

Se un file di configurazione contiene dati riservati, come informazioni su account di accesso e password, è consigliabile salvare tale configurazione in SQL ServerSQL Serveroppure usare un elenco di controllo di accesso (ACL) per limitare l'accesso al percorso o alla cartella in cui sono archiviati i file e consentire l'accesso solo a determinati account.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. L'accesso viene in genere concesso agli account autorizzati all'esecuzione dei pacchetti e agli account utilizzati per la gestione e la risoluzione dei problemi dei pacchetti, che possono comportare la revisione dei contenuti dei file di configurazione, del checkpoint e di log.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 dispone di un'archiviazione più sicura perché la protezione viene garantita ai livelli del server e del database. provides the more secure storage because it offers protection at the server and database levels. Per salvare le configurazioni in SQL ServerSQL Server, è necessario usare il tipo di configurazione di SQL ServerSQL Server ,To save configurations to SQL ServerSQL Server, you use the SQL ServerSQL Server configuration type. mentre per salvarle nel file system è necessario utilizzare il tipo di configurazione XML.To save to the file system, you use the XML configuration type.

Per altre informazioni, vedere Configurazioni di pacchetto, Creazione di configurazioni dei pacchettie Considerazioni sulla sicurezza per un'installazione SQL Server.For more information, see Package Configurations, Create Package Configurations, and Security Considerations for a SQL Server Installation.

file del checkpointCheckpoint Files

In modo analogo, è consigliabile utilizzare un elenco di controllo di accesso del sistema operativo per la sicurezza del percorso o della cartella se il file del checkpoint utilizzato dal pacchetto contiene informazioni riservate.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. Nei file del checkpoint vengono salvate informazioni aggiornate sullo stato del pacchetto e sui valori correnti delle variabili.Checkpoint files save current state information on the progress of the package as well as the current values of variables. Il pacchetto potrebbe includere, ad esempio, una variabile personalizzata per la memorizzazione di un numero di telefono.For example, the package may include a custom variable that contains a telephone number. Per ulteriori informazioni, vedere Restart Packages by Using Checkpoints.For more information, see Restart Packages by Using Checkpoints.

File di logLog Files

Anche le voci di log scritte nel file system dovrebbero essere protette tramite un elenco di controllo di accesso.Log entries that are written to the file system should also be secured using an access control list (ACL). È inoltre possibile archiviare le voci di log nelle tabelle di SQL ServerSQL Server e proteggerle con gli strumenti di sicurezza di SQL ServerSQL Server .Log entries can also be stored in SQL ServerSQL Server tables and protected by SQL ServerSQL Server security. Le voci di log possono infatti includere informazioni riservate. Se ad esempio il pacchetto contiene un'attività Esegui SQL che genera un'istruzione SQL che fa riferimento a un numero di telefono, la voce di log per l'istruzione SQL conterrà tale numero di telefono.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'istruzione SQL potrebbe inoltre esporre informazioni private sui nomi di tabelle e colonne nei database.The SQL statement may also reveal private information about table and column names in databases. Per altre informazioni, vedere registrazione di Integration Services (SSIS).For more information, see Integration Services (SSIS) Logging.

Accesso al servizio Integration Services Access to the Integration Services Service

Tramite i livelli di protezione dei pacchetti è possibile limitare gli utenti a cui è consentito modificare ed eseguire un pacchetto.Package protection levels can limit who is allowed to edit and execute a package. Per limitare gli utenti a cui è consentito visualizzare l'elenco di pacchetti attualmente in esecuzione in un server e arrestare i pacchetti attualmente in esecuzione in SQL Server Management StudioSQL Server Management Studioè necessaria una protezione aggiuntiva.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 usa il servizio SQL ServerSQL Server per visualizzare l'elenco dei pacchetti in esecuzione. uses the SQL ServerSQL Server service to list running packages. I membri del gruppo Administrators di Windows possono visualizzare e arrestare tutti i pacchetti in esecuzione.Members of the Windows Administrators group can view and stop all currently running packages. Gli utenti che non appartengono a questo gruppo possono visualizzare e arrestare solo i pacchetti che hanno avviato personalmente.Users who are not members of the Administrators group can view and stop only packages that they started.

È importante limitare l'accesso ai computer che eseguono un servizio SQL ServerSQL Server , soprattutto se si tratta di un servizio SQL ServerSQL Server che consente l'enumerazione di cartelle remote.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. Gli utenti autenticati possono richiedere l'enumerazione di pacchetti.Any authenticated user can request the enumeration of packages. Anche se il servizio non viene individuato, le cartelle vengono comunque enumerate dal servizio stesso.Even if the service does not find the service, the service enumerates folders. Questi nomi di cartella potrebbero essere sfruttati da un utente malintenzionato.These folder names may be useful to a malicious user. Se un amministratore ha configurato il servizio in modo da consentire l'enumerazione di cartelle in un computer remoto, agli utenti potrebbero essere visualizzati anche i nomi di cartella in genere non visibili.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.

Nell'elenco seguente sono contenuti collegamenti ad argomenti che illustrano come eseguire un'attività relativa alla sicurezza.The following list contains links to topics that show you how to perform a certain task pertaining to the security.