Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada de SQL do Azure
Para carregar dados criptografados sem executar verificações de metadados no servidor durante operações de cópia em massa, crie o usuário com a opção ALLOW_ENCRYPTED_VALUE_MODIFICATIONS . Essa opção destina-se a ser usada por ferramentas herdadas ou fluxos de trabalho ETL (Extract-Transform-Load) de terceiros que não podem usar o Always Encrypted. Isso permite que um usuário mova dados criptografados com segurança de um conjunto de tabelas, contendo colunas criptografadas, para outro conjunto de tabelas com colunas criptografadas (para o mesmo ou para outro banco de dados).
A opção ALLOW_ENCRYPTED_VALUE_MODIFICATIONS
CREATE USER e ALTER USER têm uma ALLOW_ENCRYPTED_VALUE_MODIFICATIONS opção. Quando definido como ON (o padrão é OFF), essa opção suprime verificações de metadados criptográficos no servidor em operações de cópia em massa, o que permite que o usuário copie dados criptografados em massa entre tabelas ou bancos de dados, sem descriptografar os dados.
Cenários de migração de dados
A tabela a seguir mostra as configurações recomendadas apropriadas para vários cenários de migração.
Carregar dados criptografados em massa
Use o processo a seguir para carregar dados criptografados.
Configure a opção de
ONpara o usuário no banco de dados de destino para a operação de cópia em massa. Por exemplo:ALTER USER Bob WITH ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = ON;Execute o aplicativo ou a ferramenta de cópia em massa que está se conectando como esse usuário. (Se o aplicativo usar um driver de cliente habilitado para Always Encrypted, verifique se a cadeia de conexão da fonte de dados não contém
column encryption setting=enabledpara garantir que os dados recuperados de colunas criptografadas permaneçam criptografados. Para obter mais informações, consulte Desenvolver aplicativos usando o Always Encrypted.)Defina a opção
ALLOW_ENCRYPTED_VALUE_MODIFICATIONSde volta paraOFF. Por exemplo:ALTER USER Bob WITH ALLOW_ENCRYPTED_VALUE_MODIFICATIONS = OFF;
Potencial de corrupção de dados
O uso inadequado dessa opção pode resultar em dados corrompidos. A ALLOW_ENCRYPTED_VALUE_MODIFICATIONS opção permite que o usuário insira quaisquer dados em colunas criptografadas no banco de dados, incluindo dados criptografados com chaves diferentes, criptografados incorretamente ou não criptografados. Se o usuário copiar acidentalmente os dados que não são criptografados corretamente usando o esquema de criptografia (chave de criptografia de coluna, algoritmo, tipo de criptografia) configurado para a coluna de destino, você não poderá descriptografar os dados (os dados estão corrompidos). Essa opção deve ser usada com cuidado, pois os dados poderão ser corrompidos no banco de dados.
O cenário a seguir demonstra como importar dados incorretamente pode corromper os dados:
A opção é configurada como
ONpara um usuário.O usuário executa o aplicativo que se conecta ao banco de dados. O aplicativo usa APIs em massa para inserir valores de texto sem formatação às colunas criptografadas. O aplicativo espera um driver de cliente habilitado para o Always Encrypted a fim de criptografar os dados na inserção. No entanto, o aplicativo está configurado incorretamente, de modo que ele acaba usando um driver que não dá suporte ao Always Encrypted ou a cadeia de conexão não contém
column encryption setting=enabled.O aplicativo envia os valores de texto sem formatação ao servidor. Como as verificações de metadados criptográficos estão desabilitadas para o usuário no servidor, o servidor permite que os dados incorretos (texto sem formatação em vez de texto cifrado criptografado corretamente) sejam inseridos em uma coluna criptografada.
O mesmo ou outro aplicativo se conecta ao banco de dados usando um driver habilitado para Always Encrypted e, com
column encryption setting=enabledna cadeia de conexão, recupera os dados. O aplicativo espera que os dados sejam descriptografados de maneira transparente. No entanto, o driver não descriptografa os dados porque trata-se de texto cifrado incorreto.
Melhor prática
Use contas de usuários designadas para execução longa de cargas de trabalho usando essa opção.
Para aplicativos de cópia em massa que funcionam por curtos períodos ou ferramentas que precisam mover dados criptografados sem descriptografá-los, ajuste a opção para ON imediatamente antes de executar o aplicativo e redefina-a para desativado imediatamente após a execução da operação.
Não use essa opção para desenvolver novos aplicativos. Em vez disso, use um driver cliente que ofereça uma API para suprimir verificações de metadados criptográficos para uma única sessão, como a opção AllowEncryptedValueModifications no Provedor de Dados do .NET Framework para SQL Server , consulte Copiar Dados Criptografados usando SqlBulkCopy.
Conteúdo relacionado
- Always Encrypted
- Migrar dados para ou de colunas usando Always Encrypted com o Assistente de Importação e Exportação do SQL Server
- CREATE USER (Transact-SQL)
- ALTERAR USUÁRIO (Transact-SQL)
- Consultar colunas usando o Always Encrypted com o SQL Server Management Studio
- Desenvolver aplicativos usando o Always Encrypted