sql >> Database teknologi >  >> RDS >> Database

Brug af data beskyttet med en Azure Key Vault fra Linux

Microsoft har forbedret sin Always Encrypted-sikkerhedsfunktion ved at aktivere nøglerne, der sikrer dataene, til at blive lagret i en Azure Key Vault.

SQL Server ODBC-driveren har understøttet Always Encrypted-kolonner, siden Microsoft oprindeligt introducerede funktionen i SQL Server 2016. Fra og med build 1.10.4 af driveren har vi tilføjet de nødvendige indstillinger for forbindelsesstrenge for at understøtte Always Encrypted data / Azure Key Vault-scenariet .

Processen for at arbejde med Azure sikrede Always Encrypted-kolonner fra Linux og UNIX er:

  1. Opret en Azure Key Vault i Windows Azure.
  2. Opret en ny app-registrering.

    Under denne proces vil du generere et applikationsklient-id og en hemmelighed. Du skal bruge disse værdier senere i denne øvelse, når du konfigurerer din SQL Server ODBC-driverdatakilde.

  3. I SQL Server Management Studio skal du oprette en testtabel i en SQL Server 2016 (eller nyere) forekomst:
    CREATE TABLE dbo.EncryptedTable
    (
      ID INT IDENTITY(1,1) PRIMARY KEY, LastName NVARCHAR(32), Salary INT NOT NULL
    );
    
  4. Højreklik på tabellen. Fra pop op-menuen skal du vælge Krypter kolonner .

    Always Encrypted Wizard starter.

  5. Kolonnevalg side, udvid tabellerne, og vælg de kolonner, du vil kryptere.
  6. Vælg en krypteringstype for hver kolonne.

    Deterministisk - krypterer altid til den samme krypteringstekst, hvilket gør det muligt at udføre lighedsopslag, joinforbindelser og grupper efter.

    Randomiseret genererer en anden krypteringstekstværdi for den samme almindelige tekst, som er mere sikker, men som ikke understøtter nogen handlinger.

  7. Vælg CEK_Auto1 (New) som krypteringsnøgle for hver kolonne, som er en ny autogenereret nøgle. Vælg Næste .
  8. Vælg Azure Key Vault , og log derefter ind på din Azure-konto, når du bliver bedt om det.
  9. Vælg din Azure Key Vault fra listen. Vælg Næste .
  10. Vælg Næste .
  11. Vælg Udfør .
  12. Vælg Luk .
  13. På din Linux- eller UNIX-maskine skal du installere version 1.10.4+ af SQL Server ODBC-driveren.
  14. Konfigurer en ODBC-datakilde i /etc/odbc.ini der opretter forbindelse til din SQL Server-instans:
    [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.
    	    
  15. Test, at du kan vise de ukrypterede data:
    /usr/local/easysoft/unixODBC/bin/isql.sh -v SQLSERVER_2016
    SQL>  select * from EncryptedTable
  16. Hvis du vil indsætte data i en Always Encrypted-kolonne, skal du bruge en parametriseret INSERT, og vores anden Always Encrypted blog giver nogle eksempler, der viser, hvordan du gør dette.

  1. Opbygning af en simpel webapp med Bottle, SQLAlchemy og Twitter API

  2. Rediger materialiseret visningsforespørgsel

  3. vælg * fra tabel vs vælg colA, colB osv. fra tabel interessant adfærd i SQL Server 2005

  4. mysql dynamisk forespørgsel i lagret procedure