DTSProtectionLevel Перечисление

Определение

Управляет обработкой конфиденциальных данных в пакете.

public enum class DTSProtectionLevel
public enum DTSProtectionLevel
type DTSProtectionLevel = 
Public Enum DTSProtectionLevel
Наследование
DTSProtectionLevel

Поля

DontSaveSensitive 0

Конфиденциальные данные не сохраняются в пакете. Конфиденциальные данные удаляются и заменяются пробелами.

EncryptAllWithPassword 3

Шифрует весь пакет с использованием пароля.

EncryptAllWithUserKey 4

Шифрует весь пакет с использованием ключей, зависящих от профиля пользователя. Только тот же пользователь, использующий тот же профиль, может загрузить пакет.

EncryptSensitiveWithPassword 2

Шифрует только конфиденциальные данные, содержащиеся в пакете, с использованием пароля. Для шифрования используется DPAPI.

EncryptSensitiveWithUserKey 1

Шифрует только конфиденциальные свойства с использованием ключей, зависящих от текущего пользователя. Только тот же пользователь, использующий тот же профиль, может загрузить пакет. Если другой пользователь откроет пакет, конфиденциальные данные будут заменены пробелами. Для шифрования используется DPAPI.

ServerStorage 5

Шифрует пакет в базе данных msdb SQL Server. Этот параметр поддерживается только в том случае, если пакет сохраняется в SQL Server. Он не поддерживается, когда пакет сохраняется в файловой системе. Управление доступом пользователей, которые могут расшифровать пакет, контролируется ролями базы данных SQL Server. Дополнительные сведения см. в статьях Роли уровня базы данных и sysssispackages (Transact-SQL).

Примеры

В следующем примере загружается пакет, а затем извлекается несколько свойств пакета, включая назначенный ProtectionLevel пакету.

Class PackageTest  
    {  
        static void Main(string[] args)  
        {  
            // The variable pkg points to the location of the  
            // ExecuteProcess package sample  
            // installed with the samples.  
            string pkg = @"C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Package Samples\ExecuteProcess Sample\ExecuteProcess\UsingExecuteProcess.dtsx";  

            Application app = new Application();  
            Package p = app.LoadPackage(pkg, null);  

            // Once the package is loaded, this sample can  
           // query on several properties  
            long cc = p.CertificateContext;  
            string cfn = p.CheckpointFileName;  
            DTSProtectionLevel pl = p.ProtectionLevel;  
            DTSPackageType dpt = p.PackageType;  

            Console.WriteLine("CertificateContext = " + cc);  
            Console.WriteLine("CheckpointFileName = " + cfn);  
            Console.WriteLine("ProtectionLevel = " + pl);  
            Console.WriteLine("PackageType = " + dpt);  
        }  
    }  
Class PackageTest  
    {  
        Shared  Sub Main(ByVal args() As String)  
            ' The variable pkg points to the location of the  
            ' ExecuteProcess package sample  
            ' installed with the samples.  
            Dim pkg As String =  "C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\Package Samples\ExecuteProcess Sample\ExecuteProcess\UsingExecuteProcess.dtsx"   

            Dim app As Application =  New Application()   
            Dim p As Package =  app.LoadPackage(pkg,Nothing)   

            ' Once the package is loaded, this sample can  
           ' query on several properties  
            Dim cc As Long =  p.CertificateContext   
            Dim cfn As String =  p.CheckpointFileName   
            Dim pl As DTSProtectionLevel =  p.ProtectionLevel   
            Dim dpt As DTSPackageType =  p.PackageType   

            Console.WriteLine("CertificateContext = " + cc)  
            Console.WriteLine("CheckpointFileName = " + cfn)  
            Console.WriteLine("ProtectionLevel = " + pl)  
            Console.WriteLine("PackageType = " + dpt)  
        End Sub  
    }  

Образец вывода:

CertificateContext = 0

CheckpointFileName =

ProtectionLevel = EncryptSensitiveWithUserKey

PackageType = Default

Комментарии

При использовании значения DontSaveSensitive, если конфиденциальная информация содержится в пакете, эта конфиденциальная информация не сохраняется. Это значение по умолчанию.

Для всех значений конфиденциальная информация определяется следующим образом:

  • Часть пароля строки подключения. Однако при выборе параметра, который шифрует все, вся строка подключения будет считаться конфиденциальной.

  • Созданные задачей УЗЛЫ XML, помеченные атрибутом Sensitive .

  • Любая переменная, помеченная атрибутом Sensitive .

Если у вас есть конфиденциальная информация в файле конфигурации, ее следует сохранить в Microsoft SQL Server или использовать список управления доступом (ACL) для защиты расположения или папки. Дополнительные сведения см. в разделе Создание конфигурации пакетов.

Дополнительные сведения о настройке уровней защиты пакетов см. в разделе контроль доступа для конфиденциальных данных в пакетах.

Шифрование выполняется с помощью двух методов. API защиты данных Майкрософт (DPAPI), который является частью API шифрования (API шифрования), используется для уровней EncryptAllWithUserKey защиты и EncryptSensitiveWithUserKey. Класс TripleDES используется для уровней EncryptAllWithPassword защиты и EncryptSensitiveWithPassword.

Дополнительные сведения см. в разделе "Класс TripleDES" в библиотеке классов платформа .NET Framework.

Применяется к