Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Sử dụng dữ liệu được bảo vệ bằng Kho khóa tùy chỉnh từ Linux

Quy trình để làm việc với các cột luôn được mã hóa luôn được bảo mật trong kho khóa tùy chỉnh từ Linux là:

  1. Cài đặt trình điều khiển SQL Server ODBC 1.10.5+ trên Máy Linux của bạn.
  2. Đị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 2016+:
    [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
  3. Trên máy Linux này, tạo hai tệp mới:
    $ cd ~/Documents
    $ touch MyKSP.c KspApp.c
  4. Sao chép và dán mã cho Nhà cung cấp Kho khóa mẫu vào MyKSP.c.
  5. Sao chép và dán mã cho ứng dụng ODBC mẫu vào KspApp.c.
  6. Mở MyKSP.c và KspApp.c trong trình soạn thảo văn bản. Trong cả hai tệp, hãy thay thế dòng này:
    #include "msodbcsql.h"

    với:

    #include <sqlncli.h>
    Ghi chú 32-bit Để sử dụng phiên bản 32-bit của ứng dụng ODBC mẫu, chúng tôi phải thay đổi mã trong KspApp.c:
    1. Chúng tôi đã thêm chức năng này:
      {
          wchar_t c1, c2;
      
          do {
              c1 = *s1++;
              c2 = *s2++;
              if (c1 == '\0')
                  return c1 - c2;
              }
          while (c1 == c2);
          return c1 - c2;
      }

      ngay sau dòng này:

      static int safe_wcscmp( wchar_t *s1, wchar_t *s2 )
    2. Chúng tôi đã thay thế các cuộc gọi đến wcscmp với safe_wcscmp .
  7. Biên dịch mã và đặt quyền thực thi trên ứng dụng và thư viện kết quả. Ví dụ:
    $ gcc -I/usr/local/easysoft/unixODBC/include -I/usr/local/easysoft/sqlserver/include \
    	                             -fshort-wchar -fPIC -o MyKSP.so -shared MyKSP.c
    $ gcc -I/usr/local/easysoft/unixODBC/include -I/usr/local/easysoft/sqlserver/include \
                                         -fshort-wchar -fPIC -o KspApp -fshort-wchar \
    	                             KspApp.c -lodbc -L/usr/local/easysoft/unixODBC/lib/ \
                	                     -L/usr/lib/x86_64-linux-gnu/libdl.so -ldl
    $ chmod +x MyKSP.so KspApp
  8. Chạy ứng dụng (KspApp), sử dụng kho khóa tùy chỉnh (MyKSP.so) để tạo và điền vào bảng với các cột AlwaysEncrypted, truy xuất dữ liệu chưa được mã hóa và xóa bảng:
    $ ./KspApp DSN=SQLSERVER_2016
    Press Enter to continue...
    
    KSP Decrypt() function called (keypath=Retrieved data: c1=1 c2=Sample data 0 for column 2
    Retrieved data: c1=12 c2=Sample data 1 for column 2
    	
  9. Prior to cleaning up the sample data, we used isql to confirm that, for an application that does not have access to the custom key vault, the data is encrypted. We turned off ColumnEncryption for this application, because unless is done the SQL Server ODBC driver will attempt to decrypt the data with a local key store, which will not work:
    /usr/local/easysoft/unixODBC/bin/isql -v -k "DRIVER={Easysoft ODBC-SQL Server SSL};Server=machine\sqlserver_instance;
                                  UID=user;PWD=password;Database=database_with_always_encrypted_data;ColumnEncryption=No"
    SQL> select top 1 c2 from CustomKSPTestTable
    +----+
    | c2 |
    +----+
    | 0104590D628739293CD8D455BD43EC59...

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chia các hoạt động xóa lớn thành nhiều phần

  2. Nhóm AlwaysOn Sẵn có:Số lượng

  3. Cách nhanh nhất để tính số trung vị là gì?

  4. RDBMS so với NoSQL

  5. Tầm quan trọng của việc chọn kích thước máy ảo Azure thích hợp