Microsoft hat seine Sicherheitsfunktion „Always Encrypted“ verbessert, indem es ermöglicht wird, dass die Schlüssel, die die Daten sichern, in einem Azure Key Vault gespeichert werden.
Der SQL Server-ODBC-Treiber hat Always Encrypted-Spalten unterstützt, seit Microsoft das Feature erstmals in SQL Server 2016 eingeführt hat. Beginnend mit Build 1.10.4 des Treibers haben wir die erforderlichen Verbindungszeichenfolgeneinstellungen hinzugefügt, um das Always Encrypted-Daten-/Azure Key Vault-Szenario zu unterstützen .
Der Prozess zum Arbeiten mit Azure-gesicherten Always Encrypted-Spalten von Linux und UNIX ist:
- Erstellen Sie einen Azure Key Vault in Windows Azure.
- Erstellen Sie eine neue App-Registrierung.
Während dieses Vorgangs generieren Sie eine Anwendungsclient-ID und einen geheimen Schlüssel. Sie benötigen diese Werte später in diesem Lernprogramm, wenn Sie Ihre SQL Server-ODBC-Treiberdatenquelle konfigurieren.
- Erstellen Sie in SQL Server Management Studio eine Testtabelle in einer Instanz von SQL Server 2016 (oder höher):
CREATE TABLE dbo.EncryptedTable ( ID INT IDENTITY(1,1) PRIMARY KEY, LastName NVARCHAR(32), Salary INT NOT NULL );
- Klicken Sie mit der rechten Maustaste auf die Tabelle. Wählen Sie im Popup-Menü Spalten verschlüsseln aus .
Der Always Encrypted-Assistent wird gestartet.
- Auf der Spaltenauswahl Seite, erweitern Sie die Tabellen und wählen Sie die Spalten aus, die Sie verschlüsseln möchten.
- Wählen Sie einen Verschlüsselungstyp für jede Spalte.
Deterministisch - verschlüsselt immer mit demselben Chiffretext, wodurch Gleichheitssuchen, Verknüpfungen und Gruppieren nach durchgeführt werden können.
Randomisiert generiert einen anderen Chiffretextwert für denselben Klartext, der sicherer ist, aber keine Operationen unterstützt.
- Wählen Sie
CEK_Auto1 (New)
als Verschlüsselungsschlüssel für jede Spalte, der ein neuer automatisch generierter Schlüssel ist. Wählen Sie Weiter . - Wählen Sie Azure Key Vault , und melden Sie sich dann bei Ihrem Azure-Konto an, wenn Sie dazu aufgefordert werden.
- Wählen Sie Ihren Azure Key Vault aus der Liste aus. Wählen Sie Weiter .
- Wählen Sie Weiter .
- Wählen Sie Fertig stellen .
- Wählen Sie Schließen .
- Installieren Sie auf Ihrem Linux- oder UNIX-Computer Version 1.10.4+ des SQL Server-ODBC-Treibers.
- Konfigurieren Sie eine ODBC-Datenquelle in
/etc/odbc.ini
der eine Verbindung zu Ihrer SQL Server-Instanz herstellt:[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.
- Testen Sie, ob Sie die unverschlüsselten Daten anzeigen können:
/usr/local/easysoft/unixODBC/bin/isql.sh -v SQLSERVER_2016 SQL> select * from EncryptedTable
- Wenn Sie Daten in eine Always Encrypted-Spalte einfügen möchten, müssen Sie ein parametrisiertes INSERT verwenden, und unser anderer Always Encrypted-Blog enthält einige Beispiele, die zeigen, wie das geht.