Bagikan melalui


Menggunakan Enkripsi

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance Azure Synapse Analytics

Di SMO, kunci master layanan diwakili oleh ServiceMasterKey objek . Ini dirujuk oleh ServiceMasterKey properti Server objek. Ini dapat diregenerasi dengan menggunakan Regenerate metode .

Kunci master database diwakili oleh MasterKey objek . Properti IsEncryptedByServer menunjukkan apakah kunci master database dienkripsi oleh kunci master layanan atau tidak. Salinan terenkripsi dalam database master diperbarui secara otomatis setiap kali kunci master database diubah.

Dimungkinkan untuk menghilangkan enkripsi kunci layanan menggunakan DropServiceKeyEncryption metode dan mengenkripsi kunci master database dengan kata sandi. Dalam situasi itu, Anda harus secara eksplisit membuka kunci master database sebelum mengakses kunci privat yang telah diamankannya.

Ketika database sedang dilampirkan ke instans SQL Server, Anda harus menyediakan kata sandi untuk kunci master database atau menjalankan AddServiceKeyEncryption metode untuk membuat salinan kunci master database yang tidak terenkripsi yang tersedia untuk enkripsi dengan kunci master layanan. Langkah ini disarankan untuk menghindari kebutuhan untuk secara eksplisit membuka kunci master database.

Metode meregenerasi Regenerate kunci master database. Ketika kunci master database diregenerasi, semua kunci yang telah dienkripsi dengan kunci master database didekripsi, lalu mengenkripsinya dengan kunci master database baru. Metode ini DropServiceKeyEncryption menghapus enkripsi kunci master database oleh kunci master layanan. AddServiceKeyEncryption menyebabkan salinan kunci master dienkripsi menggunakan kunci master layanan dan disimpan di database saat ini dan di database master.

Di SMO, sertifikat diwakili oleh Certificate objek . Objek Certificate memiliki properti yang menentukan kunci publik, nama subjek, periode validitas, dan informasi tentang penerbit. Izin untuk mengakses sertifikat dikontrol dengan menggunakan metode Grant, Revoke , dan Deny .

Contoh

Untuk contoh kode berikut, Anda harus memilih lingkungan pemrograman, templat pemrograman, dan bahasa pemrograman untuk membuat aplikasi Anda. Untuk informasi selengkapnya, lihat Membuat Proyek SMO Visual C# di Visual Studio .NET.

Menambahkan Sertifikat di Visual C#

Contoh kode membuat sertifikat sederhana dengan kata sandi enkripsi. Tidak seperti objek lain, Create metode ini memiliki beberapa kelebihan beban. Kelebihan beban yang digunakan dalam contoh membuat sertifikat baru dengan kata sandi enkripsi.

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

Menambahkan Sertifikat di PowerShell

Contoh kode membuat sertifikat sederhana dengan kata sandi enkripsi. Tidak seperti objek lain, Create metode ini memiliki beberapa kelebihan beban. Kelebihan beban yang digunakan dalam contoh membuat sertifikat baru dengan kata sandi enkripsi.

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

Lihat Juga

Menggunakan Kunci Enkripsi