Microsoft подобри своята функция за винаги криптирана защита, като позволи ключовете, които защитават данните, да се съхраняват в Azure Key Vault.
ODBC драйверът на SQL Server поддържа винаги шифровани колони, откакто Microsoft първоначално въведе функцията в SQL Server 2016. Започвайки с версия 1.10.4 на драйвера, добавихме необходимите настройки за низове за връзка, за да поддържаме сценария Always Encrypted data / Azure Key Vault .
Процесът за работа с Azure защитени винаги криптирани колони от Linux и UNIX е:
- Създайте Azure Key Vault в Windows Azure.
- Създайте нова регистрация на приложение.
По време на този процес ще генерирате клиентски идентификатор на приложението и тайна. Ще ви трябват тези стойности по-късно в този урок, когато конфигурирате източника на данни за драйвера на SQL Server ODBC.
- В SQL Server Management Studio създайте тестова таблица в екземпляр на SQL Server 2016 (или по-нова версия):
CREATE TABLE dbo.EncryptedTable ( ID INT IDENTITY(1,1) PRIMARY KEY, LastName NVARCHAR(32), Salary INT NOT NULL );
- Щракнете с десния бутон върху таблицата. От изскачащото меню изберете Шифроване на колони .
Стартира съветникът за винаги криптиран.
- В Избор на колона страница, разгънете таблиците и изберете колоните, които искате да шифровате.
- Изберете тип криптиране за всяка колона.
Детерминистично - винаги криптира към един и същ шифрован текст, позволявайки да се извършват търсене на равенство, присъединяване и групиране по.
Произволно генерира различна стойност на шифрован текст за същия обикновен текст, който е по-сигурен, но не поддържа никакви операции.
- Изберете
CEK_Auto1 (New)
като ключ за криптиране за всяка колона, който е нов автоматично генериран ключ. Изберете Напред . - Изберете Azure Key Vault , и след това влезте в акаунта си в Azure, когато бъдете подканени.
- Изберете своя Azure Key Vault от списъка. Изберете Напред .
- Изберете Напред .
- Изберете Край .
- Изберете Затваряне .
- На вашата Linux или UNIX машина инсталирайте версия 1.10.4+ на ODBC драйвера на SQL Server.
- Конфигурирайте източник на ODBC данни в
/etc/odbc.ini
който се свързва с вашия екземпляр на 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.
- Проверете дали можете да покажете нешифрованите данни:
/usr/local/easysoft/unixODBC/bin/isql.sh -v SQLSERVER_2016 SQL> select * from EncryptedTable
- Ако искате да вмъкнете данни в колона Always Encrypted, трябва да използвате параметризирано INSERT, а другият ни блог Always Encrypted предоставя някои примери, които показват как да направите това.