Microsoft ha migliorato la sua funzionalità di sicurezza Always Encrypted consentendo l'archiviazione delle chiavi che proteggono i dati in un Azure Key Vault.
Il driver ODBC di SQL Server ha supportato le colonne Always Encrypted da quando Microsoft ha inizialmente introdotto la funzionalità in SQL Server 2016. A partire dalla build 1.10.4 del driver, sono state aggiunte le impostazioni della stringa di connessione necessarie per supportare lo scenario Always Encrypted data/Azure Key Vault .
Il processo per l'utilizzo delle colonne Always Encrypted protette di Azure da Linux e UNIX è:
- Crea un Azure Key Vault in Windows Azure.
- Crea una nuova registrazione per l'app.
Durante questo processo, genererai un ID client dell'applicazione e un segreto. Questi valori saranno necessari più avanti in questa esercitazione durante la configurazione dell'origine dati del driver ODBC di SQL Server.
- In SQL Server Management Studio, creare una tabella di test in un'istanza di SQL Server 2016 (o successiva):
CREATE TABLE dbo.EncryptedTable ( ID INT IDENTITY(1,1) PRIMARY KEY, LastName NVARCHAR(32), Salary INT NOT NULL );
- Fai clic con il pulsante destro del mouse sulla tabella. Dal menu a comparsa, scegli Crittografa colonne .
Viene avviata la procedura guidata Always Encrypted.
- Sulla Selezione della colonna pagina, espandi le tabelle e seleziona le colonne che desideri crittografare.
- Scegli un tipo di crittografia per ogni colonna.
Deterministico - crittografa sempre lo stesso testo cifrato, consentendo l'esecuzione di ricerche di uguaglianza, join e raggruppamento per.
Randomizzato genera un valore di testo cifrato diverso per lo stesso testo normale, che è più sicuro, ma non supporta alcuna operazione.
- Scegli
CEK_Auto1 (New)
come chiave di crittografia per ogni colonna, che è una nuova chiave generata automaticamente. Scegli Avanti . - Scegli Azure Key Vault , quindi accedi al tuo account Azure quando richiesto.
- Scegli il tuo Azure Key Vault dall'elenco. Scegli Avanti .
- Scegli Avanti .
- Scegli Fine .
- Scegli Chiudi .
- Sul tuo computer Linux o UNIX, installa la versione 1.10.4+ del driver ODBC di SQL Server.
- Configura un'origine dati ODBC in
/etc/odbc.ini
che si connette all'istanza di 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.
- Verifica di poter visualizzare i dati non crittografati:
/usr/local/easysoft/unixODBC/bin/isql.sh -v SQLSERVER_2016 SQL> select * from EncryptedTable
- Se desideri inserire dati in una colonna Always Encrypted, devi utilizzare un INSERT parametrizzato e il nostro altro blog Always Encrypted fornisce alcuni esempi che mostrano come farlo.