Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Menggunakan Data Protected dengan Custom Key Store dari Linux

Proses untuk bekerja dengan penyimpanan kunci khusus yang diamankan kolom Selalu Terenkripsi dari Linux adalah:

  1. Instal driver SQL Server ODBC 1.10.5+ di Mesin Linux Anda.
  2. Konfigurasikan sumber data ODBC di /etc/odbc.ini yang terhubung ke contoh 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. Pada mesin Linux ini, buat dua file baru:
    $ cd ~/Documents
    $ touch MyKSP.c KspApp.c
  4. Copy dan paste kode untuk contoh Penyedia Keystore ke MyKSP.c.
  5. Copy dan paste kode contoh aplikasi ODBC ke KspApp.c.
  6. Buka MyKSP.c dan KspApp.c dalam editor teks. Di kedua file, ganti baris ini:
    #include "msodbcsql.h"

    dengan:

    #include <sqlncli.h>
    Catatan 32-bit Untuk menggunakan contoh aplikasi ODBC versi 32-bit, kami harus mengubah kode di KspApp.c:
    1. Kami menambahkan fungsi ini:
      {
          wchar_t c1, c2;
      
          do {
              c1 = *s1++;
              c2 = *s2++;
              if (c1 == '\0')
                  return c1 - c2;
              }
          while (c1 == c2);
          return c1 - c2;
      }

      segera setelah baris ini:

      static int safe_wcscmp( wchar_t *s1, wchar_t *s2 )
    2. Kami mengganti panggilan ke wcscmp dengan safe_wcscmp .
  7. Kompilasi kode dan atur izin eksekusi pada pustaka dan aplikasi yang dihasilkan. Misalnya:
    $ 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. Jalankan aplikasi (KspApp), yang menggunakan penyimpanan kunci khusus (MyKSP.so) untuk membuat dan mengisi tabel dengan kolom AlwaysEncrypted, mengambil data yang tidak terenkripsi dan menghapus tabel:
    $ ./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. Bahasa Manipulasi Data SQL

  2. Pemangkasan waktu dari datetime – tindak lanjut

  3. Alasan Lain untuk Menggunakan petunjuk NOEXPAND di Edisi Perusahaan

  4. Ambang Gabung Adaptif

  5. SQL AS:Penggunaan, Contoh, dan Bagaimana Ini Dapat Bermanfaat Bagi Anda