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

加密SQL Server msdb 数据库中的包。 仅当将包保存到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 = 默认值

注解

使用该值 DontSaveSensitive时,如果包中包含敏感信息,则不会保存此敏感信息。 这是默认值。

对于所有值,敏感信息定义为:

  • 连接字符串的密码部分。 但是,如果选择加密所有内容的选项,则整个连接字符串将被视为敏感。

  • 使用 Sensitive 属性标记的任务生成的 XML 节点。

  • 使用 Sensitive 属性标记的任何变量。

如果配置文件中有敏感信息,则应将其保存到 Microsoft SQL Server,或使用访问控制列表 (ACL) 来保护位置或文件夹。 有关详细信息,请参阅 创建包配置

有关设置包保护级别的详细信息,请参阅包中的敏感数据访问控制

加密是使用两种方法完成的。 Microsoft 数据保护 API (DPAPI) ,它是加密 API (加密 API) 的一部分,用于保护级别 EncryptAllWithUserKeyEncryptSensitiveWithUserKey。 该 TripleDES 类用于保护级别 EncryptAllWithPasswordEncryptSensitiveWithPassword

有关详细信息,请参阅 .NET Framework 类库中的 TripleDES 类

适用于