Sdílet prostřednictvím


Použití šifrování

platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analyticssql database v Microsoft Fabric

V SMO je hlavní klíč služby reprezentován objektem ServiceMasterKey . Na tuto vlastnost odkazuje ServiceMasterKey vlastnost objektu Server . Lze ji znovu vygenerovat pomocí Regenerate metody.

Hlavní klíč databáze je reprezentován objektem MasterKey . Vlastnost IsEncryptedByServer označuje, zda je hlavní klíč databáze šifrovaný hlavním klíčem služby. Šifrovaná kopie v hlavní databázi se automaticky aktualizuje při každé změně hlavního klíče databáze.

Šifrování klíče služby je možné odstranit pomocí DropServiceKeyEncryption metody a šifrovat hlavní klíč databáze pomocí hesla. V takovém případě budete muset před přístupem k privátním klíčům, které má zabezpečené, explicitně otevřít hlavní klíč databáze.

Pokud je databáze připojená k instanci SQL Serveru, musíte zadat heslo hlavního klíče databáze nebo spustit AddServiceKeyEncryption metodu, aby byla nešifrovaná kopie hlavního klíče databáze k dispozici pro šifrování pomocí hlavního klíče služby. Tento krok se doporučuje vyhnout nutnosti explicitně otevřít hlavní klíč databáze.

Metoda Regenerate znovu vygeneruje hlavní klíč databáze. Při opětovném vygenerování hlavního klíče databáze se dešifrují všechny klíče zašifrované pomocí hlavního klíče databáze a pak je zašifrují pomocí nového hlavního klíče databáze. Metoda DropServiceKeyEncryption odebere šifrování hlavního klíče databáze pomocí hlavního klíče služby. AddServiceKeyEncryption způsobí, že se kopie hlavního klíče zašifruje pomocí hlavního klíče služby a uloží se v aktuální databázi i v hlavní databázi.

V SMO jsou certifikáty reprezentovány objektem Certificate . Objekt Certificate má vlastnosti, které určují veřejný klíč, název subjektu, období platnosti a informace o vystaviteli. Oprávnění pro přístup k certifikátu se řídí pomocí metod Grant, Revoke a Deny .

Example

V následujících příkladech kódu budete muset vybrat programovací prostředí, programovací šablonu a programovací jazyk k vytvoření aplikace. Další informace najdete v tématu Vytvoření projektu SMO visual C# v sadě Visual Studio .NET.

Přidání certifikátu v jazyce Visual C#

Příklad kódu vytvoří jednoduchý certifikát s šifrovacím heslem. Na rozdíl od jiných objektů má Create metoda několik přetížení. Přetížení použité v příkladu vytvoří nový certifikát s šifrovacím heslem.

{  
            //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");  
            }  
        }   

Přidání certifikátu v PowerShellu

Příklad kódu vytvoří jednoduchý certifikát s šifrovacím heslem. Na rozdíl od jiných objektů má Create metoda několik přetížení. Přetížení použité v příkladu vytvoří nový certifikát s šifrovacím heslem.

# 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")  
  

Viz také

Použití šifrovacích klíčů