DTSProtectionLevel 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
控制包中敏感信息的处理。
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) 的一部分,用于保护级别 EncryptAllWithUserKey 和 EncryptSensitiveWithUserKey。 该 TripleDES
类用于保护级别 EncryptAllWithPassword 和 EncryptSensitiveWithPassword。
有关详细信息,请参阅 .NET Framework 类库中的 TripleDES 类。