CREATE MASTER KEY (Transact-SQL)CREATE MASTER KEY (Transact-SQL)

SI APPLICA A: sìSQL Server sìDatabase SQL di Azure sìAzure SQL Data Warehouse sìParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

Crea una chiave master del database.Creates a database master key.

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

SintassiSyntax

-- Syntax for SQL Server and Parallel Data Warehouse  
  
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password'  
[ ; ]  
-- Syntax for Azure SQL Database and Azure SQL Data Warehouse  
  
CREATE MASTER KEY [ ENCRYPTION BY PASSWORD ='password' ]
[ ; ]  

ArgomentiArguments

PASSWORD ='password'PASSWORD ='password'
Password utilizzata per crittografare la chiave master nel database.Is the password that is used to encrypt the master key in the database. password deve soddisfare i requisiti per i criteri password di Windows del computer che sta eseguendo l'istanza di SQL ServerSQL Server.password must meet the Windows password policy requirements of the computer that is running the instance of SQL ServerSQL Server. password è facoltativo in Database SQLSQL Database e SQL Data WarehouseSQL Data Warehouse.password is optional in Database SQLSQL Database and SQL Data WarehouseSQL Data Warehouse.

RemarksRemarks

La chiave master del database è una chiave simmetrica utilizzata per proteggere le chiavi private dei certificati e le chiavi asimmetriche presenti nel database.The database master key is a symmetric key used to protect the private keys of certificates and asymmetric keys that are present in the database. Al momento della creazione, la chiave master viene crittografata con l'algoritmoAES_256 e una password specificata dall'utente.When it is created, the master key is encrypted by using the AES_256 algorithm and a user-supplied password. In SQL Server 2008SQL Server 2008 e SQL Server 2008 R2SQL Server 2008 R2 viene utilizzato l'algoritmo Triple DES.In SQL Server 2008SQL Server 2008 and SQL Server 2008 R2SQL Server 2008 R2, the Triple DES algorithm is used. Per consentire la decrittografia automatica della chiave master, una copia della chiave viene crittografata con la chiave master del servizio e archiviata sia nel database che nel database master.To enable the automatic decryption of the master key, a copy of the key is encrypted by using the service master key and stored in both the database and in master. La copia archiviata nel database master viene generalmente aggiornata in modo automatico in seguito a ogni modifica della chiave master.Typically, the copy stored in master is silently updated whenever the master key is changed. È possibile modificare questa impostazione predefinita usando l'opzione DROP ENCRYPTION BY SERVICE MASTER KEY dell'istruzione ALTER MASTER KEY.This default can be changed by using the DROP ENCRYPTION BY SERVICE MASTER KEY option of ALTER MASTER KEY. Per aprire una chiave master non crittografata con la chiave master del servizio, è necessario usare l'istruzione OPEN MASTER KEY e una password.A master key that is not encrypted by the service master key must be opened by using the OPEN MASTER KEY statement and a password.

La colonna is_master_key_encrypted_by_server della vista del catalogo sys.databases nel database master indica se la chiave master del database è crittografata con la chiave master del servizio.The is_master_key_encrypted_by_server column of the sys.databases catalog view in master indicates whether the database master key is encrypted by the service master key.

Le informazioni sulla chiave master del database sono visibili nella vista del catalogo sys.symmetric_keys.Information about the database master key is visible in the sys.symmetric_keys catalog view.

Per SQL Server e Parallel Data Warehouse, la chiave master in genere è protetta dalla chiave master del servizio e da almeno una password.For SQL Server and Parallel Data Warehouse, the Master Key is typically protected by the Service Master Key and at least one password. Nel caso in cui il database venga fisicamente spostato in un server diverso (log shipping, ripristino di backup e così via), il database conterrà una copia della chiave master crittografata dalla chiave master del servizio server originale (a meno che la crittografia non sia stata rimossa in modo esplicito tramite ALTER MASTER KEY DDL) e una copia crittografata da ogni password specificata durante le operazioni successive CREATE MASTER KEY o ALTER MASTER KEY DDL.In case of the database being physically moved to a different server (log shipping, restoring backup, etc.), the database will contain a copy of the master Key encrypted by the original server Service Master Key (unless this encryption was explicitly removed using ALTER MASTER KEY DDL), and a copy of it encrypted by each password specified during either CREATE MASTER KEY or subsequent ALTER MASTER KEY DDL operations. Per ripristinare la chiave master e tutti i dati crittografati usando la chiave master come radice della gerarchia chiavi dopo lo spostamento del database, l'utente dovrà usare l'istruzione OPEN MASTER KEY con una delle password usate per proteggere la chiave master, ripristinare un backup della chiave master o ripristinare un backup della chiave master originale del servizio nel nuovo server.In order to recover the Master Key, and all the data encrypted using the Master Key as the root in the key hierarchy after the database has been moved, the user will have either use OPEN MASTER KEY statement using one of the password used to protect the Master Key, restore a backup of the Master Key, or restore a backup of the original Service Master Key on the new server.

Per Database SQLSQL Database e SQL Data WarehouseSQL Data Warehouse, la protezione con password non viene considerata come un meccanismo di sicurezza per evitare uno scenario di perdita di dati in situazioni in cui il database potrebbe essere spostato da un server a un altro, poiché la protezione della chiave master del servizio è gestita dalla piattaforma Microsoft Azure.For Database SQLSQL Database and SQL Data WarehouseSQL Data Warehouse, the password protection is not considered to be a safety mechanism to prevent a data loss scenario in situations where the database may be moved from one server to another, as the Service Master Key protection on the Master Key is managed by Microsoft Azure platform. La password della chiave master è quindi facoltativa in Database SQLSQL Database e SQL Data WarehouseSQL Data Warehouse.Therefore, the Master Key password is optional in Database SQLSQL Database and SQL Data WarehouseSQL Data Warehouse.

Importante

È consigliabile eseguire il backup della chiave master usando l'istruzione BACKUP MASTER KEY e archiviarlo in un percorso esterno sicuro.You should back up the master key by using BACKUP MASTER KEY and store the backup in a secure, off-site location.

Le chiavi master del servizio e del database vengono protette mediante l'algoritmo AES-256.The service master key and database master keys are protected by using the AES-256 algorithm.

PermissionsPermissions

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

EsempiExamples

Nell'esempio seguente viene creata una chiave master per il database corrente.The following example creates a database master key for the current database. La chiave viene crittografata con la password 23987hxJ#KL95234nl0zBe.The key is encrypted using the password 23987hxJ#KL95234nl0zBe.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '23987hxJ#KL95234nl0zBe';  
GO  

Vedere ancheSee Also

sys.symmetric_keys (Transact-SQL) sys.symmetric_keys (Transact-SQL)
sys.databases (Transact-SQL) sys.databases (Transact-SQL)
OPEN MASTER KEY (Transact-SQL) OPEN MASTER KEY (Transact-SQL)
ALTER MASTER KEY (Transact-SQL) ALTER MASTER KEY (Transact-SQL)
DROP MASTER KEY (Transact-SQL) DROP MASTER KEY (Transact-SQL)
CLOSE MASTER KEY (Transact-SQL) CLOSE MASTER KEY (Transact-SQL)
Gerarchia di crittografiaEncryption Hierarchy