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 = Default

注釈

DontSaveSensitive を使用すると、パッケージに機密情報が含まれている場合、この機密情報は保存されません。 これが既定値です。

すべての値について、機密情報は次のように定義されます。

  • 接続文字列のパスワード部分。 ただし、すべてを暗号化するオプションを選択した場合、接続文字列全体が機密情報と見なされます。

  • タスクが生成した XML ノードのうち、Sensitive 属性がタグ付けされているもの。

  • Sensitive 属性が設定されているすべての変数。

構成ファイルに機密情報がある場合は、Microsoft SQL Server に保存するか、アクセス制御リスト (ACL) を使用して場所またはフォルダーをセキュリティで保護する必要があります。 詳細については、「 パッケージ構成を作成する」を参照してください。

パッケージ保護レベルの設定の詳細については、「パッケージ内の機密データのAccess Control」を参照してください。

暗号化を行うには、2 つの方法があります。 暗号化 API (Crypto API) の一部である Microsoft Data Protection API (DPAPI) は、次の EncryptAllWithUserKey 保護レベルに EncryptSensitiveWithUserKey使用されます。 TripleDES クラスは、保護レベル EncryptAllWithPassword および EncryptSensitiveWithPassword に対して使用します。

詳細については、.NET Framework クラス ライブラリの TripleDES クラスを参照してください。

適用対象