Database
 sql >> база данни >  >> RDS >> Database

Използване на данни, защитени с персонализирано хранилище за ключове от Linux

Процесът за работа с персонализирано хранилище за ключове, защитени винаги шифровани колони от Linux е:

  1. Инсталирайте ODBC драйвера на SQL Server 1.10.5+ на вашата Linux машина.
  2. Конфигурирайте източник на ODBC данни в /etc/odbc.ini който се свързва към екземпляр на SQL Server 2016+:
    [SQLSERVER_2016]Driver=Easysoft ODBC-SQL Server SSL Server=machine\sqlserver_instanceDatabase=database_with_always_encrypted_dataUser=user # Това може да бъде вход в Windows или SQL Server.Password=passwordTrusted_Connection=Yes # Задайте това на Не за вход в SQL ServerColumnEncryption>=Enabled 
  3. На тази Linux машина създайте два нови файла:
    $ cd ~/Documents$ докоснете MyKSP.c KspApp.c
  4. Копирайте и поставете кода за примерния доставчик на Keystore в MyKSP.c.
  5. Копирайте и поставете кода за примерното ODBC приложение в KspApp.c.
  6. Отворете MyKSP.c и KspApp.c в текстов редактор. И в двата файла заменете този ред:
    #include "msodbcsql.h"

    с:

    #include 
    32-битова бележка За да използваме 32-битова версия на примерното ODBC приложение, трябваше да променим кода в KspApp.c:
    1. Добавихме тази функция:
      { wchar_t c1, c2; do { c1 =*s1++; c2 =*s2++; if (c1 =='\0') върне c1 - c2; } докато (c1 ==c2); връщане c1 - c2;}

      веднага след този ред:

      static int safe_wcscmp( wchar_t *s1, wchar_t *s2 )
    2. Заменихме извикванията към wcscmp с safe_wcscmp .
  7. Компилирайте кода и задайте разрешение за изпълнение на получената библиотека и приложение. Например:
    $ gcc -I/usr/local/easysoft/unixODBC/include -I/usr/local/easysoft/sqlserver/include \ -fshort-wchar -fPIC -o MyKSP.so -споделен 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. Стартирайте приложението (KspApp), което използва персонализираното хранилище за ключове (MyKSP.so), за да създаде и попълни таблица с колони AlwaysEncrypted, извлича нешифрованите данни и пуска таблицата:
    $ ./KspApp DSN=SQLSERVER_2016Press Въведете, за да продължите... Функцията KSP Decrypt() се извиква (keypath=Извлечени данни:c1=1 c2=Примерни данни 0 за колона 2Извлечени данни:c1=12 c2=Примерни данни 1 за колона 2 
  9. Преди да изчистим примерните данни, използвахме isql за да потвърдите, че за приложение, което няма достъп до хранилището с персонализирани ключове, данните са криптирани. Изключихме ColumnEncryption за това приложение, защото освен ако не бъде направено, драйверът на SQL Server ODBC ще се опита да декриптира данните с локално хранилище за ключове, което няма да работи:
    /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"PT1-cT2+ изберете потребителски-SQL-+ отгоре | 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. Как да изтриете колона в таблицата

  2. SQL, добавяне на данни към таблица

  3. Още онлайн операции са налични сега или скоро

  4. Trace Flag 2389 и новият оценител на мощността

  5. Параметър Sniffing Primer