ALTER SERVICE MASTER KEY (Transact-SQL)ALTER SERVICE MASTER KEY (Transact-SQL)

SI APPLICA A: sìSQL Server (a partire dalla versione 2008) noDatabase SQL di Azure noAzure SQL Data Warehouse noParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2008) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Modifica la chiave master del servizio di un'istanza di SQL ServerSQL Server.Changes the service master key of an instance of SQL ServerSQL Server.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax

  
ALTER SERVICE MASTER KEY   
    [ { <regenerate_option> | <recover_option> } ] [;]  
  
<regenerate_option> ::=  
    [ FORCE ] REGENERATE  
  
<recover_option> ::=  
    { WITH OLD_ACCOUNT = 'account_name' , OLD_PASSWORD = 'password' }  
    |      
    { WITH NEW_ACCOUNT = 'account_name' , NEW_PASSWORD = 'password' }  

ArgomentiArguments

FORCEFORCE
Indica che la chiave master del servizio deve essere rigenerata, anche a rischio di perdita dei dati.Indicates that the service master key should be regenerated, even at the risk of data loss. Per altre informazioni, vedere Modifica dell'account del servizio SQL Server più avanti in questo argomento.For more information, see Changing the SQL Server Service Account later in this topic.

REGENERATEREGENERATE
Indica che la chiave master del servizio deve essere rigenerata.Indicates that the service master key should be regenerated.

OLD_ACCOUNT ='account_name'OLD_ACCOUNT ='account_name'
Specifica il nome dell'account del servizio Windows precedente.Specifies the name of the old Windows service account.

Avviso

Questa opzione è obsoleta.This option is obsolete. Non usare.Do not use. In alternativa, utilizzare Gestione configurazione SQL ServerSQL Server.Use SQL ServerSQL Server Configuration Manager instead.

OLD_PASSWORD ='password'OLD_PASSWORD ='password'
Specifica la password dell'account del servizio Windows precedente.Specifies the password of the old Windows service account.

Avviso

Questa opzione è obsoleta.This option is obsolete. Non usare.Do not use. In alternativa, utilizzare Gestione configurazione SQL ServerSQL Server.Use SQL ServerSQL Server Configuration Manager instead.

NEW_ACCOUNT ='account_name'NEW_ACCOUNT ='account_name'
Specifica il nome del nuovo account del servizio Windows.Specifies the name of the new Windows service account.

Avviso

Questa opzione è obsoleta.This option is obsolete. Non usare.Do not use. In alternativa, utilizzare Gestione configurazione SQL ServerSQL Server.Use SQL ServerSQL Server Configuration Manager instead.

NEW_PASSWORD ='password'NEW_PASSWORD ='password'
Specifica la password del nuovo account del servizio Windows.Specifies the password of the new Windows service account.

Avviso

Questa opzione è obsoleta.This option is obsolete. Non usare.Do not use. In alternativa, utilizzare Gestione configurazione SQL ServerSQL Server.Use SQL ServerSQL Server Configuration Manager instead.

RemarksRemarks

La chiave master del servizio viene generata automaticamente la prima volta che risulta necessaria per crittografare la password di un server collegato, le credenziali o la chiave master del database.The service master key is automatically generated the first time it is needed to encrypt a linked server password, credential, or database master key. La chiave master del servizio viene crittografata mediante la chiave del computer locale o l'API Windows per la protezione dei dati (DAPI, Data Protection API).The service master key is encrypted using the local machine key or the Windows Data Protection API. In questa API viene utilizzata una chiave derivata dalle credenziali di Windows dell'account del servizio SQL ServerSQL Server.This API uses a key that is derived from the Windows credentials of the SQL ServerSQL Server service account.

SQL Server 2012 (11.x)SQL Server 2012 (11.x) usa l'algoritmo di crittografia AES per proteggere la chiave master del servizio (SMK) e la chiave master del database (DMK).uses the AES encryption algorithm to protect the service master key (SMK) and the database master key (DMK). AES è un algoritmo di crittografia più recente rispetto a 3DES utilizzato nelle versioni precedenti.AES is a newer encryption algorithm than 3DES used in earlier versions. Dopo aver aggiornato un'istanza di Motore di databaseDatabase Engine a SQL Server 2012 (11.x)SQL Server 2012 (11.x) le chiavi SMK e DMK devono essere rigenerate per aggiornare le chiavi master ad AES.After upgrading an instance of the Motore di databaseDatabase Engine to SQL Server 2012 (11.x)SQL Server 2012 (11.x) the SMK and DMK should be regenerated in order to upgrade the master keys to AES. Per altre informazioni sulla rigenerazione della DMK, vedere ALTER MASTER KEY (Transact-SQL).For more information about regenerating the DMK, see ALTER MASTER KEY (Transact-SQL).

Modifica dell'account del servizio SQL ServerChanging the SQL Server Service Account

Per modificare l'account del servizio SQL ServerSQL Server, utilizzare Gestione configurazione SQL ServerSQL Server.To change the SQL ServerSQL Server service account, use SQL ServerSQL Server Configuration Manager. Per gestire una modifica dell'account del servizio, SQL ServerSQL Server archivia una copia ridondante della chiave master del servizio protetta dall'account del computer che ha le autorizzazioni necessarie concesse al gruppo di servizi di SQL ServerSQL Server.To manage a change of the service account, SQL ServerSQL Server stores a redundant copy of the service master key protected by the machine account that has the necessary permissions granted to the SQL ServerSQL Server service group. Se il computer viene ricompilato, lo stesso utente di dominio utilizzato in precedenza dall'account del servizio può recuperare la chiave master del servizio.If the computer is rebuilt, the same domain user that was previously used by the service account can recover the service master key. Questa operazione non è possibile con gli account locali o con l'account di sistema locale, Servizio locale o Servizio di rete.This does not work with local accounts or the Local System, Local Service, or Network Service accounts. Quando si sposta SQL ServerSQL Server in un altro computer, eseguire la migrazione della chiave master del servizio usando la procedura di backup e ripristino.When you are moving SQL ServerSQL Server to another computer, migrate the service master key by using backup and restore.

L'istruzione REGENERATE consente di rigenerare la chiave master del servizio.The REGENERATE phrase regenerates the service master key. In seguito alla rigenerazione della chiave master del servizio, SQL ServerSQL Server decrittografa tutte le chiavi crittografate con tale chiave e quindi le crittografa con la nuova chiave master del servizio.When the service master key is regenerated, SQL ServerSQL Server decrypts all the keys that have been encrypted with it, and then encrypts them with the new service master key. Si tratta di un'operazione che utilizza molte risorseThis is a resource-intensive operation. e pertanto dovrebbe essere pianificata in periodi di carico ridotto, a meno che la chiave non sia stata compromessa.You should schedule this operation during a period of low demand, unless the key has been compromised. In caso di esito negativo di una qualsiasi delle operazioni di decrittografia, l'intera istruzione avrà esito negativo.If any one of the decryptions fail, the whole statement fails.

L'opzione FORCE consente di continuare il processo di rigenerazione della chiave anche se non è possibile recuperare la chiave master corrente o decrittografare tutte le chiavi private crittografate con tale chiave master.The FORCE option causes the key regeneration process to continue even if the process cannot retrieve the current master key, or cannot decrypt all the private keys that are encrypted with it. Usare l'opzione FORCE solo se la rigenerazione non riesce e non è possibile ripristinare la chiave master del servizio tramite l'istruzione RESTORE SERVICE MASTER KEY.Use FORCE only if regeneration fails and you cannot restore the service master key by using the RESTORE SERVICE MASTER KEY statement.

Attenzione

La chiave master del servizio è l'elemento radice della gerarchia di crittografia di SQL ServerSQL Server .The service master key is the root of the SQL ServerSQL Server encryption hierarchy. Con la chiave master del servizio vengono protetti direttamente o indirettamente tutte le altre chiavi e tutti i segreti nell'albero.The service master key directly or indirectly protects all other keys and secrets in the tree. Se non è possibile decrittografare una chiave dipendente durante una rigenerazione forzata, i dati protetti dalla chiave andranno perduti.If a dependent key cannot be decrypted during a forced regeneration, the data the key secures will be lost.

Se si sposta SQL in un altro computer, è necessario usare lo stesso account del servizio per decrittografare SMK. SQL Server correggerà automaticamente la crittografia dell'account del computer.If you move SQL to another machine, then you have to use the same service account to decrypt the SMK - SQL Server will fix the Machine account encryption automatically.

PermissionsPermissions

È richiesta l'autorizzazione CONTROL SERVER per il server.Requires CONTROL SERVER permission on the server.

EsempiExamples

Nell'esempio seguente viene rigenerata la chiave master del servizio.The following example regenerates the service master key.

ALTER SERVICE MASTER KEY REGENERATE;  
GO  

Vedere ancheSee Also

RESTORE SERVICE MASTER KEY (Transact-SQL) RESTORE SERVICE MASTER KEY (Transact-SQL)
BACKUP SERVICE MASTER KEY (Transact-SQL) BACKUP SERVICE MASTER KEY (Transact-SQL)
Gerarchia di crittografiaEncryption Hierarchy