次の方法で共有


暗号化の使用

SMO では、サービス マスター キーは ServiceMasterKey オブジェクトによって表されます。 これは、Server オブジェクトの ServiceMasterKey プロパティによって参照されます。 Regenerateメソッドを使用して再生成できます。

データベース マスター キーは、 MasterKey オブジェクトによって表されます。 IsEncryptedByServer プロパティは、データベース マスター キーがサービス マスター キーによって暗号化されているかどうかを示します。 マスター データベース内の暗号化されたコピーは、データベース マスター キーが変更されるたびに自動的に更新されます。

DropServiceKeyEncryptionメソッドを使用してサービス キー暗号化を削除し、パスワードでデータベース マスター キーを暗号化することができます。 このような場合は、セキュリティで保護された秘密キーにアクセスする前に、データベース マスター キーを明示的に開く必要があります。

データベースが SQL Server のインスタンスにアタッチされている場合は、データベース マスター キーのパスワードを指定するか、 AddServiceKeyEncryption メソッドを実行して、データベース マスター キーの暗号化されていないコピーをサービス マスター キーによる暗号化に使用できるようにする必要があります。 この手順は、データベース マスター キーを明示的に開く必要を回避するために推奨されます。

Regenerateメソッドは、データベース マスター キーを再生成します。 データベース マスター キーが再生成されると、データベース マスター キーで暗号化されたすべてのキーが暗号化解除され、新しいデータベース マスター キーで暗号化されます。 DropServiceKeyEncryptionメソッドは、サービス マスター キーによるデータベース マスター キーの暗号化を削除します。 AddServiceKeyEncryption では、マスター キーのコピーがサービス マスター キーを使用して暗号化され、現在のデータベースとマスター データベースの両方に格納されます。

SMO では、証明書は Certificate オブジェクトによって表されます。 Certificate オブジェクトには、公開キー、サブジェクトの名前、有効期間、発行者に関する情報を指定するプロパティがあります。 証明書へのアクセス許可は、 GrantRevoke 、および Deny メソッドを使用して制御されます。

次のコード例では、アプリケーションを作成するために、プログラミング環境、プログラミング テンプレート、およびプログラミング言語を選択する必要があります。 詳細については、「 Visual Studio .NET で Visual Basic SMO プロジェクトを作成する」および「Visual Studio .NETで Visual C# SMO プロジェクトを作成する」を参照してください。

Visual Basic での証明書の追加

このコード例では、暗号化パスワードを使用して単純な証明書を作成します。 他のオブジェクトとは異なり、 Create メソッドにはいくつかのオーバーロードがあります。 この例で使用されるオーバーロードは、暗号化パスワードを使用して新しい証明書を作成します。

Visual C での証明書の追加#

このコード例では、暗号化パスワードを使用して単純な証明書を作成します。 他のオブジェクトとは異なり、 Create メソッドにはいくつかのオーバーロードがあります。 この例で使用されるオーバーロードは、暗号化パスワードを使用して新しい証明書を作成します。

{  
            //Connect to the local, default instance of SQL Server.   
            {  
                Server srv = new Server();  
  
                //Reference the AdventureWorks2012 database.   
                Database db = srv.Databases["AdventureWorks2012"];  
  
                //Define a Certificate object variable by supplying the parent database and name in the constructor.   
                Certificate c = new Certificate(db, "Test_Certificate");  
  
                //Set the start date, expiry date, and description.   
                System.DateTime dt;  
                DateTime.TryParse("January 01, 2010", out dt);  
                c.StartDate = dt;  
                DateTime.TryParse("January 01, 2015", out dt);  
                c.ExpirationDate = dt;  
                c.Subject = "This is a test certificate.";  
                //Create the certificate on the instance of SQL Server by supplying the certificate password argument.   
                c.Create("pGFD4bb925DGvbd2439587y");  
            }  
        }   

PowerShell での証明書の追加

このコード例では、暗号化パスワードを使用して単純な証明書を作成します。 他のオブジェクトとは異なり、 Create メソッドにはいくつかのオーバーロードがあります。 この例で使用されるオーバーロードは、暗号化パスワードを使用して新しい証明書を作成します。

# Set the path context to the local, default instance of SQL Server and get a reference to AdventureWorks2012  
CD \sql\localhost\default\databases  
$db = get-item AdventureWorks2012  
  
#Create a certificate
$c = New-Object -TypeName Microsoft.SqlServer.Management.Smo.Certificate -ArgumentList $db, "Test_Certificate"  
$c.StartDate = "January 01, 2010"  
$c.Subject = "This is a test certificate."  
$c.ExpirationDate = "January 01, 2015"  
  
#Create the certificate on the instance of SQL Server by supplying the certificate password argument.  
$c.Create("pGFD4bb925DGvbd2439587y")

こちらもご覧ください

暗号化キーの使用