Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-databas i Förhandsversion av Microsoft Fabric
I SMO representeras tjänsthuvudnyckeln ServiceMasterKey av objektet. Detta refereras av ServiceMasterKey objektets Server egenskap. Den kan återskapas med hjälp Regenerate av metoden .
Huvudnyckeln för databasen representeras av MasterKey objektet. Egenskapen IsEncryptedByServer anger om databashuvudnyckeln krypteras av tjänstens huvudnyckel eller inte. Den krypterade kopian i huvuddatabasen uppdateras automatiskt när databashuvudnyckeln ändras.
Det går att släppa krypteringen av tjänstnyckeln DropServiceKeyEncryption med hjälp av metoden och kryptera databashuvudnyckeln med ett lösenord. I så fall måste du uttryckligen öppna huvudnyckeln för databasen innan du får åtkomst till privata nycklar som den har skyddat.
När en databas kopplas till en instans av SQL Server måste du antingen ange lösenordet för databashuvudnyckeln eller köra AddServiceKeyEncryption metoden för att göra en okrypterad kopia av databashuvudnyckeln tillgänglig för kryptering med tjänstens huvudnyckel. Det här steget rekommenderas för att undvika behovet av att uttryckligen öppna databashuvudnyckeln.
Metoden Regenerate återskapar databashuvudnyckeln. När databashuvudnyckeln återskapas dekrypteras alla nycklar som har krypterats med databashuvudnyckeln och krypteras sedan med den nya huvudnyckeln för databasen. Metoden DropServiceKeyEncryption tar bort krypteringen av databashuvudnyckeln med tjänstens huvudnyckel. AddServiceKeyEncryption gör att en kopia av huvudnyckeln krypteras med hjälp av tjänstens huvudnyckel och lagras i både den aktuella databasen och i huvuddatabasen.
I SMO representeras certifikaten Certificate av objektet. Objektet Certificate har egenskaper som anger den offentliga nyckeln, namnet på ämnet, giltighetsperioden och information om utfärdaren. Behörighet att komma åt certifikatet styrs med hjälp av metoderna Bevilja, Återkalla och Neka .
Example
För följande kodexempel måste du välja programmeringsmiljö, programmeringsmall och programmeringsspråket för att skapa ditt program. Mer information finns i Skapa ett Visual C# SMO-projekt i Visual Studio .NET.
Lägga till ett certifikat i Visual C#
Kodexemplet skapar ett enkelt certifikat med ett krypteringslösenord. Till skillnad från andra objekt Create har metoden flera överlagringar. Den överlagring som används i exemplet skapar ett nytt certifikat med ett krypteringslösenord.
{
//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");
}
}
Lägga till ett certifikat i PowerShell
Kodexemplet skapar ett enkelt certifikat med ett krypteringslösenord. Till skillnad från andra objekt Create har metoden flera överlagringar. Den överlagring som används i exemplet skapar ett nytt certifikat med ett krypteringslösenord.
# 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")