A Microsoft aprimorou seu recurso de segurança Always Encrypted, permitindo que as chaves que protegem os dados sejam armazenadas em um Azure Key Vault.
O driver ODBC do SQL Server tem suporte para colunas Always Encrypted desde que a Microsoft introduziu inicialmente o recurso no SQL Server 2016. A partir do build 1.10.4 do driver, adicionamos as configurações de cadeia de conexão necessárias para dar suporte ao cenário Always Encrypted data/Azure Key Vault .
O processo para trabalhar com colunas Always Encrypted protegidas pelo Azure do Linux e UNIX é:
- Crie um Azure Key Vault no Windows Azure.
- Crie um novo registro de aplicativo.
Durante esse processo, você gerará um ID de cliente de aplicativo e um segredo. Você precisará desses valores posteriormente neste tutorial ao configurar sua fonte de dados do driver ODBC do SQL Server.
- No SQL Server Management Studio, crie uma tabela de teste em uma instância do SQL Server 2016 (ou posterior):
CREATE TABLE dbo.EncryptedTable ( ID INT IDENTITY(1,1) PRIMARY KEY, LastName NVARCHAR(32), Salary INT NOT NULL );
- Clique com o botão direito do mouse na tabela. No menu pop-up, escolha Criptografar Colunas .
O Assistente Always Encrypted é iniciado.
- Na Seleção de colunas página, expanda as tabelas e selecione as colunas que você deseja criptografar.
- Escolha um tipo de criptografia para cada coluna.
Determinístico - sempre criptografa para o mesmo texto cifrado, permitindo que pesquisas de igualdade, junções e agrupamento por sejam realizadas.
Aleatório gera um valor de texto cifrado diferente para o mesmo texto simples, que é mais seguro, mas não oferece suporte a nenhuma operação.
- Escolha
CEK_Auto1 (New)
como a chave de criptografia para cada coluna, que é uma nova chave gerada automaticamente. Escolha Próximo . - Escolha Azure Key Vault e, em seguida, entre na sua conta do Azure quando solicitado.
- Escolha seu Azure Key Vault na lista. Escolha Próximo .
- Escolha Próximo .
- Escolha Concluir .
- Escolha Fechar .
- Em sua máquina Linux ou UNIX, instale a versão 1.10.4+ do driver ODBC do SQL Server.
- Configure uma fonte de dados ODBC em
/etc/odbc.ini
que se conecta à sua instância do SQL Server:[SQLSERVER_2016] Driver=Easysoft ODBC-SQL Server SSL Server=machine\sqlserver_instance Database=database_with_always_encrypted_data User=user # This can be a Windows or SQL Server login. Password=password Trusted_Connection=Yes # Set this to No for a SQL Server login ColumnEncryption=Enabled KeyStoreAuthentication=KeyVaultClientSecret KeyStorePrincipalId=ac9e3f9b-ed5e-4f11-9746-f1d25cc5867c # Your application client ID KeyStoreSecret=wQOFhXY/1yIEUK75j8m/o4IUU7tf3AnVRc3ybO6b3VA # and application secret generated when registering # an App in your Azure portal.
- Teste se você pode exibir os dados não criptografados:
/usr/local/easysoft/unixODBC/bin/isql.sh -v SQLSERVER_2016 SQL> select * from EncryptedTable
- Se você deseja inserir dados em uma coluna Always Encrypted, você precisa usar um INSERT parametrizado, e nosso outro blog Always Encrypted fornece alguns exemplos que mostram como fazer isso.