CREATE MASTER KEY (Transact-SQL)

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do AzureAzure Synapse AnalyticsPDW (Analytics Platform System)

Cria uma chave mestra de banco de dados no banco de dados.

Importante

  • Faça o backup da chave mestra usando BACKUP MASTER KEY e armazene-a em um local seguro e externo.
  • No SQL Server, faça também o backup da chave mestra de serviço usando BACKUP SERVICE MASTER KEY e armazene-a em um local seguro e externo.

Convenções de sintaxe de Transact-SQL

Sintaxe

CREATE MASTER KEY [ ENCRYPTION BY PASSWORD ='password' ]
[ ; ]

Observação

Para exibir a sintaxe do Transact-SQL para o SQL Server 2014 (12.x) e versões anteriores, confira a Documentação das versões anteriores.

Argumentos

PASSWORD ='password'

A senha é usada para criptografar a chave mestra no banco de dados. A password deve atender aos requisitos da política de senha do Windows do computador que executa a instância do SQL Server. password é opcional no Banco de Dados SQL e Azure Synapse Analytics.

Comentários

A chave mestra do banco de dados é uma chave simétrica usada para proteger as chaves privadas de certificados e chaves assimétricas que estão presentes no banco de dados e segredos nas credenciais com escopo do 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 (10.0.x) e SQL Server 2008 R2 (10.50.x), o algoritmo DES Triplo é usado. Para permitir a descriptografia automática da chave mestra, uma cópia da chave é criptografada por meio da chave mestra de serviço e armazenada no banco de dados e no master. Normalmente, a cópia armazenada no master é silenciosamente atualizada sempre que a chave mestra é alterada. Esse padrão pode ser alterado com a opção DROP ENCRYPTION BY SERVICE MASTER KEY de ALTER MASTER KEY. Uma chave mestra que não é criptografada pela chave mestra de serviço deve ser aberta usando a instrução OPEN MASTER KEY e uma senha.

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

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

Para o SQL Server e o Parallel Data Warehouse, a chave mestra normalmente é protegida pela chave mestra de serviço e por pelo menos uma senha. No caso do banco de dados que está sendo movido fisicamente para outro servidor (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 do servidor original (a menos que essa criptografia tenha sido explicitamente removida usando ALTER MASTER KEY DDL) e uma cópia criptografada por cada senha especificada durante as operações CREATE MASTER KEY ou ALTER MASTER KEY DDL subsequentes. Para recuperar a chave mestra e todos os dados criptografados usando a chave mestra como a raiz na hierarquia de chaves depois que o banco de dados foi movido, o usuário precisará usar a instrução OPEN MASTER KEY com uma das senhas usadas para proteger a chave mestra, restaurar um backup da chave mestra ou restaurar um backup da chave mestra de serviço original no novo servidor.

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

Para o Banco de Dados SQL, a chave mestra do banco de dados pode ser criada automaticamente para proteger os segredos nas credenciais com escopo do banco de dados usadas para auditoria e outros recursos que exigem uma credencial com escopo de banco de dados para autenticar em um recurso externo, como uma conta do Armazenamento do Azure. A chave mestra é criada com uma senha forte selecionada aleatoriamente. Os usuários não podem criar a chave mestra em um banco de dados lógico master . A senha da chave mestra é desconhecida pela Microsoft e não pode ser descoberta após a criação. Por esse motivo, é recomendável criar uma chave mestra de banco de dados antes de criar uma credencial com escopo de banco de dados.

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

Permissões

Exige a permissão CONTROL no banco de dados.

Exemplos

Use o exemplo a seguir para criar uma chave mestra do banco de dados em um banco de dados. A chave é criptografada usando uma senha.

CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<strong password>';
GO

Verifique a presença da nova chave, ##MS_DatabaseMasterKey##:

SELECT * FROM sys.symmetric_keys;
GO