Microsoft đã nâng cao tính năng bảo mật Luôn được mã hóa bằng cách cho phép các khóa bảo mật dữ liệu được lưu trữ trong Azure Key Vault.
Trình điều khiển SQL Server ODBC đã hỗ trợ các cột Luôn được Mã hóa kể từ khi Microsoft ban đầu giới thiệu tính năng này trong SQL Server 2016. Bắt đầu với bản dựng 1.10.4 của trình điều khiển, chúng tôi đã thêm cài đặt chuỗi kết nối cần thiết để hỗ trợ kịch bản Dữ liệu luôn được Mã hóa / Azure Key Vault .
Quy trình làm việc với các cột Luôn được Mã hóa Bảo mật của Azure từ Linux và UNIX là:
- Tạo Azure Key Vault trong Windows Azure.
- Tạo đăng ký Ứng dụng mới.
Trong quá trình này, bạn sẽ tạo ID ứng dụng khách và bí mật. Bạn sẽ cần những giá trị này sau trong hướng dẫn này khi định cấu hình nguồn dữ liệu trình điều khiển ODBC SQL Server của mình.
- Trong SQL Server Management Studio, tạo bảng kiểm tra trong phiên bản SQL Server 2016 (hoặc mới hơn):
CREATE TABLE dbo.EncryptedTable ( ID INT IDENTITY(1,1) PRIMARY KEY, LastName NVARCHAR(32), Salary INT NOT NULL );
- Nhấp chuột phải vào bảng. Từ trình đơn bật lên, hãy chọn Mã hóa các cột .
Trình hướng dẫn luôn được mã hóa bắt đầu.
- Trên Lựa chọn Cột , mở rộng bảng và chọn cột bạn muốn mã hóa.
- Chọn một kiểu mã hóa cho mỗi cột.
Xác định - luôn mã hóa thành cùng một văn bản mật mã, cho phép thực hiện tra cứu bình đẳng, nối và nhóm theo.
Ngẫu nhiên tạo một giá trị văn bản mật mã khác cho cùng một văn bản thuần túy, an toàn hơn, nhưng không hỗ trợ bất kỳ thao tác nào.
- Chọn
CEK_Auto1 (New)
làm khóa mã hóa cho mỗi cột, là khóa mới được tạo tự động. Chọn Tiếp theo . - Chọn Azure Key Vault , rồi đăng nhập vào tài khoản Azure của bạn khi được nhắc.
- Chọn Azure Key Vault của bạn từ danh sách. Chọn Tiếp theo .
- Chọn Tiếp theo .
- Chọn Hoàn tất .
- Chọn Đóng .
- Trên máy Linux hoặc UNIX của bạn, hãy cài đặt phiên bản 1.10.4+ của trình điều khiển ODBC SQL Server.
- Định cấu hình nguồn dữ liệu ODBC trong
/etc/odbc.ini
kết nối với phiên bản SQL Server của bạn:[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.
- Kiểm tra xem bạn có thể hiển thị dữ liệu không được mã hóa không:
/usr/local/easysoft/unixODBC/bin/isql.sh -v SQLSERVER_2016 SQL> select * from EncryptedTable
- Nếu muốn chèn dữ liệu vào cột Luôn được Mã hóa, bạn cần sử dụng CHÈN được tham số hóa và blog Luôn được Mã hóa khác của chúng tôi cung cấp một số ví dụ hướng dẫn cách thực hiện việc này.