CREATE MASTER KEY (Transact-SQL)

 

Publicado: dezembro de 2016

ESTE TÓPICO APLICA-SE A: simSQL Server (começando com o 2008)simBanco de Dados SQL do AzuresimAzure SQL Data Warehouse simParallel Data Warehouse

Cria uma chave mestra de banco de dados.

Topic link icon Convenções de sintaxe Transact-SQL

-- 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' ]
[ ; ]  

SENHA ='senha'
É a senha usada para criptografar a chave mestra no banco de dados. senha deve atender aos requisitos de diretiva de senha do Windows do computador que está executando a instância de SQL Server. senha é opcional em Banco de Dados SQL e SQL Data Warehouse.

A chave mestra do banco de dados é uma chave simétrica usada para proteger as chaves privadas dos certificados e as chaves assimétricas presentes no banco de dados. Quando é criada, a chave mestra é criptografada com o algoritmo AES_256 e uma senha fornecida pelo usuário. No SQL Server 2008 e no SQL Server 2008 R2, o algoritmo DES triplo é usado. Para permitir a descriptografia automática da chave mestra, uma cópia da chave é criptografada usando a chave mestra de serviço e armazenada no banco de dados atual e no mestre. Normalmente, a cópia armazenada em mestre é silenciosamente atualizada sempre que a chave mestra é alterada. Esse padrão pode ser alterado usando a opção de SOLTAR criptografia pela chave MESTRA de serviço do ALTER MASTER KEY. Uma chave mestra não criptografada pela chave mestra de serviço deve ser aberta usando o OPEN MASTER KEY instrução e uma senha.

A coluna is_master_key_encrypted_by_server da exibição do catálogo sys.databases em mestre indica se a chave mestra do banco de dados é criptografada pela chave mestra de serviço.

Informações sobre a chave mestra de banco de dados são visíveis na exibição do catálogo sys.symmetric_keys.

Para SQL Server e Parallel Data Warehouse, a chave mestra normalmente é protegido pela chave mestra de serviço e pelo menos uma senha. No caso do banco de dados que está sendo movido fisicamente em um servidor diferente (envio de logs, a restauração do backup, etc.), o banco de dados conterá uma cópia da chave mestra criptografada pela chave mestra de serviço de servidor original (a menos que essa criptografia foi explicitamente removida usando ALTER MASTER KEY DDL) e uma cópia criptografada por cada senha especificada durante CREATE MASTER KEY ou operações ALTER MASTER KEY DDL subsequentes. Para recuperar a chave mestra e todos os dados criptografados usando a chave mestra como a raiz da hierarquia de chave depois que o banco de dados foi movido, o usuário tem de usar instrução OPEN MASTER KEY usando um a senha usada para proteger a chave mestra, restaure um backup da chave mestra ou restaurar um backup de original chave mestra de serviço no novo servidor.

Para Banco de Dados SQL e SQL Data Warehouse, a proteção por senha não é considerada para ser um mecanismo de segurança para evitar um cenário de perda de dados em situações onde o banco de dados pode ser movido de um servidor para outro, como a proteção de chave mestra de serviço em que a chave mestra é gerenciada pela plataforma do Microsoft Azure. Portanto, a senha da chave mestre é opcional em Banco de Dados SQL e SQL Data Warehouse.

System_CAPS_ICON_important.jpg Importante


Você deve fazer backup da chave mestra usando BACKUP MASTER KEY e armazene o backup em um local externo seguro.

A chave mestra de serviço e as chaves mestras de banco de dados são protegidas pelo algoritmo AES-256.

Exige a permissão CONTROL no banco de dados.

O exemplo a seguir cria uma chave mestra para o banco de dados AdventureWorks2012. A chave é criptografada usando a senha 23987hxJ#KL95234nl0zBe.

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

O exemplo a seguir cria uma chave mestra. A chave é criptografada usando a senha 23987hxJ#KL95234nl0zBe.

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

symmetric_keys (Transact-SQL)
sys. Databases (Transact-SQL)
OPEN MASTER KEY (Transact-SQL)
ALTER MASTER KEY (Transact-SQL)
DROP MASTER KEY (Transact-SQL)
Fechar MASTER KEY (Transact-SQL)
Hierarquia de criptografia

Contribuições da comunidade

ADICIONAR
Mostrar: