Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-database in Microsoft Fabric Preview
In SMO wordt de hoofdsleutel van de service vertegenwoordigd door het ServiceMasterKey object. Er wordt naar verwezen door de ServiceMasterKey eigenschap van het Server object. Het kan opnieuw worden gegenereerd met behulp van de Regenerate methode.
De hoofdsleutel van de database wordt vertegenwoordigd door het MasterKey object. De IsEncryptedByServer eigenschap geeft aan of de hoofdsleutel van de database al dan niet is versleuteld door de hoofdsleutel van de service. De versleutelde kopie in de hoofddatabase wordt automatisch bijgewerkt wanneer de hoofdsleutel van de database wordt gewijzigd.
Het is mogelijk om servicesleutelversleuteling te verwijderen met behulp van de DropServiceKeyEncryption methode en de hoofdsleutel van de database te versleutelen met een wachtwoord. In dat geval moet u de hoofdsleutel van de database expliciet openen voordat u toegang krijgt tot persoonlijke sleutels die zijn beveiligd.
Wanneer een database wordt gekoppeld aan een exemplaar van SQL Server, moet u het wachtwoord voor de hoofdsleutel van de database opgeven of de AddServiceKeyEncryption methode uitvoeren om een niet-versleutelde kopie van de databasehoofdsleutel beschikbaar te maken voor versleuteling met de servicehoofdsleutel. Deze stap wordt aanbevolen om te voorkomen dat de hoofdsleutel van de database expliciet moet worden geopend.
De Regenerate methode genereert de hoofdsleutel van de database opnieuw. Wanneer de hoofdsleutel van de database opnieuw wordt gegenereerd, worden alle sleutels die zijn versleuteld met de hoofdsleutel van de database ontsleuteld en worden deze vervolgens versleuteld met de nieuwe hoofdsleutel van de database. De DropServiceKeyEncryption methode verwijdert de versleuteling van de databasehoofdsleutel door de servicehoofdsleutel. AddServiceKeyEncryption zorgt ervoor dat een kopie van de hoofdsleutel wordt versleuteld met behulp van de hoofdsleutel van de service en wordt opgeslagen in zowel de huidige database als in de hoofddatabase.
In SMO worden certificaten vertegenwoordigd door het Certificate object. Het Certificate object heeft eigenschappen die de openbare sleutel, de naam van het onderwerp, de geldigheidsperiode en informatie over de verlener opgeven. De machtiging voor toegang tot het certificaat wordt beheerd met behulp van de methoden Verlenen, Intrekken en Weigeren .
Example
Voor de volgende codevoorbeelden moet u de programmeeromgeving, de programmeersjabloon en de programmeertaal selecteren om uw toepassing te maken. Zie Een Visual C# SMO-project maken in Visual Studio .NETvoor meer informatie.
Een certificaat toevoegen in Visual C#
In het codevoorbeeld wordt een eenvoudig certificaat gemaakt met een versleutelingswachtwoord. In tegenstelling tot andere objecten heeft de Create methode verschillende overbelastingen. De overbelasting die in het voorbeeld wordt gebruikt, maakt een nieuw certificaat met een versleutelingswachtwoord.
{
//Connect to the local, default instance of SQL Server.
{
Server srv = new Server();
//Reference the AdventureWorks2022 database.
Database db = srv.Databases["AdventureWorks2022"];
//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");
}
}
Een certificaat toevoegen in PowerShell
In het codevoorbeeld wordt een eenvoudig certificaat gemaakt met een versleutelingswachtwoord. In tegenstelling tot andere objecten heeft de Create methode verschillende overbelastingen. De overbelasting die in het voorbeeld wordt gebruikt, maakt een nieuw certificaat met een versleutelingswachtwoord.
# Set the path context to the local, default instance of SQL Server and get a reference to AdventureWorks2022
CD \sql\localhost\default\databases
$db = get-item AdventureWorks2022
#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")