Condividi tramite


Uso della crittografia

In SMO la chiave master del servizio è rappresentata dall'oggetto ServiceMasterKey . Viene fatto riferimento alla ServiceMasterKey proprietà dell'oggetto Server . Può essere rigenerata usando il Regenerate metodo .

La chiave master del database è rappresentata dall'oggetto MasterKey . La IsEncryptedByServer proprietà indica se la chiave master del database è crittografata dalla chiave master del servizio. La copia crittografata nel database master viene aggiornata automaticamente ogni volta che viene modificata la chiave master del database.

È possibile eliminare la crittografia della chiave del servizio usando il DropServiceKeyEncryption metodo e crittografare la chiave master del database con una password. In questo caso, è necessario aprire in modo esplicito la chiave master del database prima di accedere alle chiavi private protette.

Quando un database viene collegato a un'istanza di SQL Server, è necessario specificare la password per la chiave master del database oppure eseguire il AddServiceKeyEncryption metodo per rendere disponibile una copia non crittografata della chiave master del database per la crittografia con la chiave master del servizio. Questo passaggio è consigliato per evitare la necessità di aprire in modo esplicito la chiave master del database.

Il Regenerate metodo rigenera la chiave master del database. Quando la chiave master del database viene rigenerata, tutte le chiavi crittografate con la chiave master del database vengono decrittografate e quindi le crittografa con la nuova chiave master del database. Il DropServiceKeyEncryption metodo rimuove la crittografia della chiave master del database dalla chiave master del servizio. AddServiceKeyEncryption fa sì che una copia della chiave master venga crittografata usando la chiave master del servizio e archiviata sia nel database corrente che nel database master.

In SMO i certificati sono rappresentati dall'oggetto Certificate . L'oggetto Certificate ha proprietà che specificano la chiave pubblica, il nome dell'oggetto, il periodo di validità e le informazioni sull'emittente. L'autorizzazione per accedere al certificato viene controllata tramite i Grantmetodi , Revoke e Deny .

Esempio

Per l'esempio di codice seguente, è necessario selezionare l'ambiente di programmazione, il modello di programmazione e il linguaggio di programmazione per creare l'applicazione. Per altre informazioni, vedere Creare un progetto SMO di Visual Basic in Visual Studio .NET e Creare un progetto SMO visual C# in Visual Studio .NET.

Aggiunta di un certificato in Visual Basic

L'esempio di codice crea un certificato semplice con una password di crittografia. A differenza di altri oggetti, il Create metodo ha diversi overload. L'overload usato nell'esempio crea un nuovo certificato con una password di crittografia.

Aggiunta di un certificato in Visual C#

L'esempio di codice crea un certificato semplice con una password di crittografia. A differenza di altri oggetti, il Create metodo ha diversi overload. L'overload usato nell'esempio crea un nuovo certificato con una password di crittografia.

{  
            //Connect to the local, default instance of SQL Server.   
            {  
                Server srv = new Server();  
  
                //Reference the AdventureWorks2012 database.   
                Database db = srv.Databases["AdventureWorks2012"];  
  
                //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");  
            }  
        }   

Aggiunta di un certificato in PowerShell

L'esempio di codice crea un certificato semplice con una password di crittografia. A differenza di altri oggetti, il Create metodo ha diversi overload. L'overload usato nell'esempio crea un nuovo certificato con una password di crittografia.

# Set the path context to the local, default instance of SQL Server and get a reference to AdventureWorks2012  
CD \sql\localhost\default\databases  
$db = get-item AdventureWorks2012  
  
#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")

Vedere anche

Uso delle chiavi di crittografia