CREATE MASTER KEY (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Banco de Dados SQL no Microsoft Fabric
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' ]
[ ; ]
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 em credenciais no 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 da 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 no escopo do banco de dados usadas para auditoria e outros recursos que exigem uma credencial no escopo do banco de dados para autenticar em um recurso externo, como uma conta de 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 para a 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 no escopo do 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