Database
 sql >> डेटाबेस >  >> RDS >> Database

Linux के कस्टम कुंजी स्टोर से सुरक्षित डेटा का उपयोग करना

कस्टम कुंजी स्टोर के साथ काम करने की प्रक्रिया लिनक्स से हमेशा एन्क्रिप्टेड कॉलम सुरक्षित है:

  1. अपनी Linux मशीन पर SQL सर्वर ODBC ड्राइवर 1.10.5+ स्थापित करें।
  2. एक ODBC डेटा स्रोत को /etc/odbc.ini में कॉन्फ़िगर करें जो SQL सर्वर 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. इस Linux मशीन पर, दो नई फ़ाइलें बनाएं:
    $ cd ~/Documents
    $ touch MyKSP.c KspApp.c
    स्पर्श करें
  4. कीस्टोर प्रदाता उदाहरण के लिए कोड को MyKSP.c. में कॉपी और पेस्ट करें।
  5. कोड को कॉपी करें और उदाहरण के लिए ODBC एप्लिकेशन को KspApp.c में पेस्ट करें।
  6. एक टेक्स्ट एडिटर में MyKSP.c और KspApp.c खोलें। दोनों फाइलों में, इस लाइन को बदलें:
    #include "msodbcsql.h"

    साथ:

    #include <sqlncli.h>
    32-बिट नोट नमूना ODBC एप्लिकेशन के 32-बिट संस्करण का उपयोग करने के लिए, हमें KspApp.c में कोड बदलना पड़ा:
    1. हमने यह फ़ंक्शन जोड़ा:
      {
          wchar_t c1, c2;
      
          do {
              c1 = *s1++;
              c2 = *s2++;
              if (c1 == '\0')
                  return c1 - c2;
              }
          while (c1 == c2);
          return 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 -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. एप्लिकेशन (KspApp) चलाएं, जो हमेशा एन्क्रिप्टेड कॉलम वाली तालिका बनाने और पॉप्युलेट करने के लिए कस्टम कुंजी स्टोर (MyKSP.so) का उपयोग करता है, अनएन्क्रिप्टेड डेटा पुनर्प्राप्त करता है और तालिका को छोड़ देता है:
    $ ./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. SQL में सेट ऑपरेटर्स

  2. जावा की जेपीए तकनीक क्या है?

  3. #temp तालिका निर्माण ट्रैकिंग का ओवरहेड

  4. SQL संदर्भ तालिका:मूल प्रश्न कैसे बनाएं और लिखें

  5. शुरुआती के लिए SQL COUNT ()