Firma Microsoft ulepszyła swoją funkcję zabezpieczeń Always Encrypted, umożliwiając przechowywanie kluczy zabezpieczających dane w Azure Key Vault.
Sterownik ODBC programu SQL Server obsługuje kolumny Always Encrypted, odkąd firma Microsoft początkowo wprowadziła tę funkcję w programie SQL Server 2016. Począwszy od kompilacji sterownika w wersji 1.10.4, dodaliśmy niezbędne ustawienia parametrów połączenia w celu obsługi scenariusza Always Encrypted data / Azure Key Vault .
Proces pracy z zabezpieczonymi kolumnami Always Encrypted platformy Azure z systemów Linux i UNIX to:
- Utwórz Azure Key Vault w Windows Azure.
- Utwórz nową rejestrację aplikacji.
Podczas tego procesu wygenerujesz identyfikator klienta aplikacji i klucz tajny. Te wartości będą potrzebne w dalszej części tego samouczka podczas konfigurowania źródła danych sterownika ODBC SQL Server.
- W SQL Server Management Studio utwórz tabelę testową w wystąpieniu SQL Server 2016 (lub nowszym):
CREATE TABLE dbo.EncryptedTable ( ID INT IDENTITY(1,1) PRIMARY KEY, LastName NVARCHAR(32), Salary INT NOT NULL );
- Kliknij tabelę prawym przyciskiem myszy. Z wyskakującego menu wybierz Zaszyfruj kolumny .
Uruchomi się Kreator Always Encrypted.
- W Wybraniu kolumny stronę, rozwiń tabele i wybierz kolumny, które chcesz zaszyfrować.
- Wybierz typ szyfrowania dla każdej kolumny.
Deterministyczny - zawsze szyfruje do tego samego tekstu zaszyfrowanego, umożliwiając przeprowadzanie wyszukiwania równości, łączenia i grupowania według.
Losowo generuje inną wartość tekstu zaszyfrowanego dla tego samego zwykłego tekstu, który jest bezpieczniejszy, ale nie obsługuje żadnych operacji.
- Wybierz
CEK_Auto1 (New)
jako klucz szyfrowania dla każdej kolumny, który jest nowym kluczem wygenerowanym automatycznie. Wybierz Dalej . - Wybierz Azure Key Vault , a następnie po wyświetleniu monitu zaloguj się na swoje konto platformy Azure.
- Wybierz z listy Azure Key Vault. Wybierz Dalej .
- Wybierz Dalej .
- Wybierz Zakończ .
- Wybierz Zamknij .
- Na komputerze z systemem Linux lub UNIX zainstaluj wersję 1.10.4+ sterownika ODBC SQL Server.
- Skonfiguruj źródło danych ODBC w
/etc/odbc.ini
który łączy się z Twoją instancją 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.
- Sprawdź, czy możesz wyświetlić niezaszyfrowane dane:
/usr/local/easysoft/unixODBC/bin/isql.sh -v SQLSERVER_2016 SQL> select * from EncryptedTable
- Jeśli chcesz wstawić dane do kolumny Always Encrypted, musisz użyć sparametryzowanej INSERT, a nasz inny blog Always Encrypted zawiera kilka przykładów, które pokazują, jak to zrobić.