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

Определение

Контролирует обработку конфиденциальной информации в упаковке.

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

Поля

Имя Значение Описание
DontSaveSensitive 0

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

EncryptSensitiveWithUserKey 1

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

EncryptSensitiveWithPassword 2

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

EncryptAllWithPassword 3

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

EncryptAllWithUserKey 4

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

ServerStorage 5

Шифрует пакет в базе данных msdb SQL Server. Эта опция поддерживается только при сохранении пакета на SQL Server. Он не поддерживается при сохранении пакета в файловой системе. Контроль доступа к тому, кто может расшифровать пакет, контролируется ролями баз данных SQL Server. Для получения дополнительной информации смотрите Database-Level Роли и системные пакеты (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 = По умолчанию

Комментарии

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

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

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

  • XML-узлы, сгенерированные задачами, которые отмечены Sensitive атрибутом.

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

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

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

Шифрование осуществляется двумя методами. Microsoft Data Protection API (DPAPI), являющийся частью Cryptography API (Crypto API), используется для уровней EncryptAllWithUserKey защиты и EncryptSensitiveWithUserKey. Класс TripleDES используется для уровней защиты и EncryptAllWithPasswordEncryptSensitiveWithPassword.

Для получения дополнительной информации см. Класс TripleDES в библиотеке классов .NET Framework.

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