Fiz backup de um banco de dados e backup da chave mestra do banco de dados para a mesma pasta. Todos têm acesso total a esta pasta, no entanto, apenas o backup do banco de dados herda as permissões da pasta, enquanto o backup da chave não.
Preciso usar privilégios de administrador para visualizar a segurança do arquivo de backup da chave mestra.
Alguém pode sugerir por que isso pode ser? Ambos foram criados pela mesma conta via comando backup no T-SQL.
Sempre que você executar
BACKUP CERTIFICATE
ouBACKUP MASTER KEY
, o SQL Server modificará a Lista de Controle de Acesso (ACL) em cada arquivo de sistema de arquivos resultante que ele cria 1 para que ninguém além dos seguintes principais do Windows tenha acesso ao arquivo:S-1-3-4
que representa o proprietário atual do objeto. Quando uma entrada de controle de acesso que carrega esse SID é aplicada a um objeto, o sistema ignora as permissões implícitas READ_CONTROL e WRITE_DAC para o proprietário do objeto.NT SERVICE\MSSQLSERVER
. Para uma instância nomeada, a conta é nomeadaNT SERVICE\MSSQL$INSTANCE_NAME
.Esse comportamento ocorre por design e é uma tentativa de limitar o acesso ao certificado resultante e sua chave privada. Permitir que "todos" acessem o certificado e os arquivos de chave privada permite que todos restaurem um backup do banco de dados criptografado TDE no servidor de sua escolha e possam visualizar todos os dados criptografados como se não estivessem criptografados. O que você está propondo fazer parece uma péssima ideia para mim, pois basicamente contorna a criptografia.
Veja minha postagem no blog para mais detalhes e código de exemplo.
1 - supondo que o SQL Server Service tenha direitos de "controle total" na pasta de destino na instrução de backup.