Udostępnij za pośrednictwem


Using Encryption

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsBaza danych SQL w usłudze Microsoft Fabric (wersja zapoznawcza)

W programie SMO klucz główny usługi jest reprezentowany ServiceMasterKey przez obiekt . Odwołuje się ServiceMasterKey do tego właściwość Server obiektu. Można go wygenerować ponownie przy użyciu Regenerate metody .

Klucz główny bazy danych jest reprezentowany MasterKey przez obiekt . Właściwość IsEncryptedByServer wskazuje, czy klucz główny bazy danych jest szyfrowany przez klucz główny usługi. Zaszyfrowana kopia w bazie danych master jest automatycznie aktualizowana za każdym razem, gdy klucz główny bazy danych zostanie zmieniony.

Istnieje możliwość porzucania szyfrowania klucza usługi przy użyciu metody i szyfrowania klucza głównego bazy danych przy użyciu DropServiceKeyEncryption hasła. W takiej sytuacji należy jawnie otworzyć klucz główny bazy danych przed uzyskaniem dostępu do kluczy prywatnych, które zostały zabezpieczone.

Gdy baza danych jest dołączana do wystąpienia programu SQL Server, należy podać hasło klucza głównego bazy danych lub wykonać AddServiceKeyEncryption metodę , aby utworzyć niezaszyfrowaną kopię klucza głównego bazy danych dostępną do szyfrowania za pomocą klucza głównego usługi. Ten krok jest zalecany, aby uniknąć konieczności jawnego otwarcia klucza głównego bazy danych.

Metoda Regenerate ponownie generuje klucz główny bazy danych. Po wygenerowaniu klucza głównego bazy danych wszystkie klucze zaszyfrowane za pomocą klucza głównego bazy danych są odszyfrowywane, a następnie szyfruje je przy użyciu nowego klucza głównego bazy danych. Metoda DropServiceKeyEncryption usuwa szyfrowanie klucza głównego bazy danych za pomocą klucza głównego usługi. AddServiceKeyEncryption powoduje zaszyfrowanie kopii klucza głównego przy użyciu klucza głównego usługi i zapisanie zarówno w bieżącej bazie danych, jak i w bazie danych master.

W przypadku funkcji SMO certyfikaty są reprezentowane przez Certificate obiekt . Obiekt Certificate ma właściwości, które określają klucz publiczny, nazwę podmiotu, okres ważności i informacje o wystawcy. Uprawnienie dostępu do certyfikatu jest kontrolowane przy użyciu metod Grant, Revoke i Deny .

Example

W poniższych przykładach kodu należy wybrać środowisko programowania, szablon programowania i język programowania, aby utworzyć aplikację. Aby uzyskać więcej informacji, zobacz Create a Visual C# SMO Project in Visual Studio .NET(Tworzenie projektu SMO w programie Visual Studio .NET).

Dodawanie certyfikatu w programie Visual C#

Przykładowy kod tworzy prosty certyfikat z hasłem szyfrowania. W przeciwieństwie do innych obiektów Create metoda ma kilka przeciążeń. Przeciążenie używane w przykładzie tworzy nowy certyfikat z hasłem szyfrowania.

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

Dodawanie certyfikatu w programie PowerShell

Przykładowy kod tworzy prosty certyfikat z hasłem szyfrowania. W przeciwieństwie do innych obiektów Create metoda ma kilka przeciążeń. Przeciążenie używane w przykładzie tworzy nowy certyfikat z hasłem szyfrowania.

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

See Also

Korzystanie z kluczy szyfrowania