Microsoft har forbedret sin Always Encrypted-sikkerhedsfunktion ved at aktivere nøglerne, der sikrer dataene, til at blive lagret i en Azure Key Vault.
SQL Server ODBC-driveren har understøttet Always Encrypted-kolonner, siden Microsoft oprindeligt introducerede funktionen i SQL Server 2016. Fra og med build 1.10.4 af driveren har vi tilføjet de nødvendige indstillinger for forbindelsesstrenge for at understøtte Always Encrypted data / Azure Key Vault-scenariet .
Processen for at arbejde med Azure sikrede Always Encrypted-kolonner fra Linux og UNIX er:
- Opret en Azure Key Vault i Windows Azure.
- Opret en ny app-registrering.
Under denne proces vil du generere et applikationsklient-id og en hemmelighed. Du skal bruge disse værdier senere i denne øvelse, når du konfigurerer din SQL Server ODBC-driverdatakilde.
- I SQL Server Management Studio skal du oprette en testtabel i en SQL Server 2016 (eller nyere) forekomst:
CREATE TABLE dbo.EncryptedTable ( ID INT IDENTITY(1,1) PRIMARY KEY, LastName NVARCHAR(32), Salary INT NOT NULL );
- Højreklik på tabellen. Fra pop op-menuen skal du vælge Krypter kolonner .
Always Encrypted Wizard starter.
- På Kolonnevalg side, udvid tabellerne, og vælg de kolonner, du vil kryptere.
- Vælg en krypteringstype for hver kolonne.
Deterministisk - krypterer altid til den samme krypteringstekst, hvilket gør det muligt at udføre lighedsopslag, joinforbindelser og grupper efter.
Randomiseret genererer en anden krypteringstekstværdi for den samme almindelige tekst, som er mere sikker, men som ikke understøtter nogen handlinger.
- Vælg
CEK_Auto1 (New)
som krypteringsnøgle for hver kolonne, som er en ny autogenereret nøgle. Vælg Næste . - Vælg Azure Key Vault , og log derefter ind på din Azure-konto, når du bliver bedt om det.
- Vælg din Azure Key Vault fra listen. Vælg Næste .
- Vælg Næste .
- Vælg Udfør .
- Vælg Luk .
- På din Linux- eller UNIX-maskine skal du installere version 1.10.4+ af SQL Server ODBC-driveren.
- Konfigurer en ODBC-datakilde i
/etc/odbc.ini
der opretter forbindelse til din SQL Server-instans:[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.
- Test, at du kan vise de ukrypterede data:
/usr/local/easysoft/unixODBC/bin/isql.sh -v SQLSERVER_2016 SQL> select * from EncryptedTable
- Hvis du vil indsætte data i en Always Encrypted-kolonne, skal du bruge en parametriseret INSERT, og vores anden Always Encrypted blog giver nogle eksempler, der viser, hvordan du gør dette.