Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In SMO wird der Dienstmasterschlüssel durch das ServiceMasterKey Objekt dargestellt. Dies wird von der ServiceMasterKey Eigenschaft des Server Objekts referenziert. Sie kann mithilfe der Regenerate Methode neu generiert werden.
Der Datenbankmasterschlüssel wird durch das MasterKey Objekt dargestellt. Die IsEncryptedByServer Eigenschaft gibt an, ob der Datenbankmasterschlüssel vom Dienstmasterschlüssel verschlüsselt wird. Die verschlüsselte Kopie in der Masterdatenbank wird automatisch aktualisiert, wenn der Datenbankmasterschlüssel geändert wird.
Es ist möglich, die Dienstschlüsselverschlüsselung mithilfe der DropServiceKeyEncryption Methode abzulegen und den Datenbankmasterschlüssel mit einem Kennwort zu verschlüsseln. In diesem Fall müssen Sie den Datenbankmasterschlüssel explizit öffnen, bevor Sie auf private Schlüssel zugreifen, die sie gesichert hat.
Wenn eine Datenbank an eine Instanz von SQL Server angefügt wird, müssen Sie entweder das Kennwort für den Datenbankmasterschlüssel angeben oder die AddServiceKeyEncryption Methode ausführen, um eine unverschlüsselte Kopie des Datenbankmasterschlüssels für die Verschlüsselung mit dem Dienstmasterschlüssel zur Verfügung zu stellen. Dieser Schritt wird empfohlen, die Notwendigkeit zu vermeiden, den Datenbankmasterschlüssel explizit zu öffnen.
Die Regenerate Methode generiert den Datenbankmasterschlüssel neu. Wenn der Datenbankmasterschlüssel neu generiert wird, werden alle Schlüssel, die mit dem Datenbankmasterschlüssel verschlüsselt wurden, entschlüsselt und dann mit dem neuen Datenbankmasterschlüssel verschlüsselt. Die DropServiceKeyEncryption Methode entfernt die Verschlüsselung des Datenbankmasterschlüssels durch den Dienstmasterschlüssel. AddServiceKeyEncryption bewirkt, dass eine Kopie des Hauptschlüssels mit dem Dienstmasterschlüssel verschlüsselt und sowohl in der aktuellen Datenbank als auch in der Masterdatenbank gespeichert wird.
In SMO werden Zertifikate durch das Certificate Objekt dargestellt. Das Certificate Objekt verfügt über Eigenschaften, die den öffentlichen Schlüssel, den Namen des Betreffs, die Gültigkeitsdauer und Informationen zum Aussteller angeben. Die Berechtigung für den Zugriff auf das Zertifikat wird mithilfe der GrantMethoden und Deny der Methoden Revoke gesteuert.
Beispiel
Im folgenden Codebeispiel müssen Sie die Programmierumgebung, die Programmiervorlage und die Programmiersprache auswählen, um Ihre Anwendung zu erstellen. Weitere Informationen finden Sie unter Erstellen eines Visual Basic-SMO-Projekts in Visual Studio .NET und Erstellen eines Visual C#-SMO-Projekts in Visual Studio .NET.
Hinzufügen eines Zertifikats in Visual Basic
Im Codebeispiel wird ein einfaches Zertifikat mit einem Verschlüsselungskennwort erstellt. Im Gegensatz zu anderen Objekten verfügt die Create Methode über mehrere Überladungen. Die im Beispiel verwendete Überladung erstellt ein neues Zertifikat mit einem Verschlüsselungskennwort.
Hinzufügen eines Zertifikats in Visual C#
Im Codebeispiel wird ein einfaches Zertifikat mit einem Verschlüsselungskennwort erstellt. Im Gegensatz zu anderen Objekten verfügt die Create Methode über mehrere Überladungen. Die im Beispiel verwendete Überladung erstellt ein neues Zertifikat mit einem Verschlüsselungskennwort.
{
//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");
}
}
Hinzufügen eines Zertifikats in PowerShell
Im Codebeispiel wird ein einfaches Zertifikat mit einem Verschlüsselungskennwort erstellt. Im Gegensatz zu anderen Objekten verfügt die Create Methode über mehrere Überladungen. Die im Beispiel verwendete Überladung erstellt ein neues Zertifikat mit einem Verschlüsselungskennwort.
# 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")