Esercitazione: Introduzione ad Always Encrypted con enclavi sicuri in SQL ServerTutorial: Getting started with Always Encrypted with secure enclaves in SQL Server

Si applica a:Applies to: sìSQL Server 2019 (15.x)SQL Server 2019 (15.x)yesSQL Server 2019 (15.x)SQL Server 2019 (15.x) - Solo Windows Si applica a:Applies to: sìSQL Server 2019 (15.x)SQL Server 2019 (15.x)yesSQL Server 2019 (15.x)SQL Server 2019 (15.x) - Windows only

Questa esercitazione illustra come iniziare a usare Always Encrypted con enclave sicure in SQL ServerSQL Server.This tutorial teaches you how to get started with Always Encrypted with secure enclaves in SQL ServerSQL Server. L'esercitazione spiega:It will show you:

  • Come creare un ambiente di base per i test e la valutazione di Always Encrypted con enclave sicuri.How to create a basic environment for testing and evaluating Always Encrypted with secure enclaves.
  • Come crittografare i dati in locale ed eseguire query avanzate riservate su colonne crittografate usando SQL Server Management Studio (SSMS).How to encrypt data in-place and issue rich confidential queries against encrypted columns using SQL Server Management Studio (SSMS).

PrerequisitiPrerequisites

Per iniziare a usare Always Encrypted con enclave sicuri sono necessari almeno due computer (possono essere macchine virtuali):To get started with Always Encrypted with secure enclaves, you need at least two computers (they can be virtual machines):

  • Il computer SQL ServerSQL Server per ospitare SQL ServerSQL Server e SSMS.The SQL ServerSQL Server computer to host SQL ServerSQL Server and SSMS.
  • Il computer del servizio Sorveglianza host (HGS) in cui eseguire il servizio, necessario per l'attestazione dell'enclave.The HGS computer to run Host Guardian Service, which is needed for enclave attestation.

Requisiti per il computer SQL ServerSQL Server computer requirements

  • SQL Server 2019 (15.x)SQL Server 2019 (15.x) o versioni successive.SQL Server 2019 (15.x)SQL Server 2019 (15.x) or later.
  • Windows 10 Enterprise versione 1809 o successiva oppure Windows Server 2019 edizione Datacenter.Windows 10 Enterprise version 1809 or later; or Windows Server 2019 Datacenter edition. Le altre edizioni di Windows 10 e Windows Server non supportano l'attestazione con HGS.Other editions of Windows 10 and Windows Server don't support attestation with HGS.
  • Supporto della CPU per le tecnologie di virtualizzazione:CPU support for virtualization technologies:
    • Intel VT-x con Extended Page Tables.Intel VT-x with Extended Page Tables.
    • AMD-V con Rapid Virtualization Indexing.AMD-V with Rapid Virtualization Indexing.
    • Se si esegue SQL ServerSQL Server in una macchina virtuale, l'hypervisor e la CPU fisica devono offrire funzionalità di virtualizzazione annidata.If you're running SQL ServerSQL Server in a VM, the hypervisor and physical CPU must offer nested virtualization capabilities.
      • In Hyper-V 2016 o versione successiva abilitare le estensioni di virtualizzazione annidata nel processore della macchina virtuale.On Hyper-V 2016 or later, enable nested virtualization extensions on the VM processor.
      • In Azure selezionare una dimensione di macchina virtuale che supporta la virtualizzazione annidata,In Azure, select a VM size that supports nested virtualization. incluse tutte le macchine virtuali della serie v3, ad esempio Dv3 ed Ev3.This includes all v3 series VMs, for example Dv3 and Ev3. Vedere Creare una VM di Azure in grado di supportare l'annidamento.See Create a nesting capable Azure VM.
      • In VMware vSphere 6.7 o versioni successive, abilitare il supporto della sicurezza basata sulla virtualizzazione (VBS) per la macchina virtuale come descritto nella documentazione di VMware.On VMware vSphere 6.7 or later, enable Virtualization Based Security support for the VM as described in the VMware documentation.
      • Anche altri hypervisor e cloud pubblici possono supportare le funzionalità di virtualizzazione annidata che abilitano Always Encrypted con enclave di sicurezza basata sulla virtualizzazione.Other hypervisors and public clouds may support nested virtualization capabilities that enable Always Encrypted with VBS Enclaves as well. Vedere la documentazione della soluzione di virtualizzazione per informazioni sulla compatibilità e istruzioni per la configurazione.Check your virtualization solution's documentation for compatibility and configuration instructions.
  • SQL Server Management Studio (SSMS) 18.3 o versioni successive.SQL Server Management Studio (SSMS) 18.3 or later.

In alternativa è possibile installare SSMS in un altro computer.As an alternative, you can install SSMS on another machine.

Avviso

Negli ambienti di produzione non si dovrebbe mai usare SSMS o altri strumenti per la gestione di chiavi Always Encrypted o l'esecuzione di query su dati crittografati nel computer SQL Server, in quanto ciò può ridurre o annullare completamente lo scopo dell'uso di Always Encrypted.In production environments, you should never use SSMS or other tools to manage Always Encrypted keys or run queries on encrypted data on the SQL Server computer, as this may reduce or completely defeat the purpose of using Always Encrypted. Per informazioni dettagliate, vedere Considerazioni sulla sicurezza per la gestione delle chiavi.See Security Considerations for Key Management for details.

Requisiti per il computer HGSHGS computer requirements

  • Windows Server 2019 Standard o Datacenter EditionWindows Server 2019 Standard or Datacenter edition
  • 2 CPU2 CPUs
  • 8 GB di RAM8 GB RAM
  • 100 GB di spazio di archiviazione100 GB storage

Nota

Il computer HGS non deve appartenere a un dominio prima di iniziare la procedura.The HGS computer should not be joined to a domain before you start.

Passaggio 1: Configurare il computer HGSStep 1: Configure the HGS computer

In questo passaggio si configura il computer HGS per eseguire il servizio Sorveglianza host che supporta l'attestazione chiave host.In this step, you will configure the HGS computer to run Host Guardian Service supporting host key attestation.

  1. Accedere al computer del servizio HGS come amministratore (amministratore locale), aprire una console di Windows PowerShell con privilegi elevati e aggiungere il ruolo del servizio Sorveglianza host eseguendo il comando seguente:Sign in to the HGS computer as an administrator (local admin), open an elevated Windows PowerShell console and add the Host Guardian Service role by running the following command:

    Install-WindowsFeature -Name HostGuardianServiceRole -IncludeManagementTools -Restart
    
  2. Dopo il riavvio del computer HGS, accedere nuovamente con l'account di amministratore, aprire una console di Windows PowerShell con privilegi elevati ed eseguire i comandi seguenti per installare il servizio Sorveglianza host e configurare il dominio corrispondente.After the HGS computer reboots, sign in with your admin account again, open an elevated Windows PowerShell console and run the following commands to install the Host Guardian Service and configure its domain. La password specificata in questo contesto verrà applicata solo come password Modalità di ripristino dei servizi directory per Active Directory, ma non modificherà la password di accesso dell'account amministratore.The password you specify here will only apply to the Directory Services Repair Mode password for Active Directory; it will not change your admin account's login password. È possibile specificare qualsiasi nome di dominio per -HgsDomainName.You may provide any domain name of your choosing for -HgsDomainName.

    $adminPassword = ConvertTo-SecureString -AsPlainText '<password>' -Force
    Install-HgsServer -HgsDomainName 'bastion.local' -SafeModeAdministratorPassword $adminPassword -Restart
    
  3. Dopo un ulteriore riavvio del computer, accedere con l'account di amministratore (ora anche amministratore di dominio), aprire una console di Windows PowerShell con privilegi elevati e configurare l'attestazione chiave host per l'istanza del servizio HGS.After the computer reboots again, sign in with your admin account (which is now also a Domain Admin), open an elevated Windows PowerShell console, and configure host key attestation for your HGS instance.

    Initialize-HgsAttestation -HgsServiceName 'hgs' -TrustHostKey  
    
  4. Trovare l'indirizzo IP del computer HGS eseguendo il comando seguente.Find the IP address of the HGS computer by running the following command. Salvare questo indirizzo IP per i passaggi successivi.Save this IP address for later steps.

    Get-NetIPAddress  
    

Nota

In alternativa, per fare riferimento al computer HGS mediante un nome DNS, è possibile configurare un server di inoltro dai server DNS aziendali al nuovo controller di dominio HGS.Alternatively, if you want to reference your HGS computer by a DNS name, you can set up a forwarder from your corporate DNS servers to the new HGS domain controller.

Passaggio 2: Configurare il computer SQL Server come host sorvegliatoStep 2: Configure the SQL Server computer as a guarded host

In questo passaggio si configura il computer SQL Server come host controllato registrato con HGS usando l'attestazione chiave host.In this step, you will configure the SQL Server computer as a guarded host registered with HGS using host key attestation.

Avviso

L'attestazione chiave host è consigliata solo per l'uso in ambienti di test.Host key attestation is only recommended for use in test environments. Per gli ambienti di produzione è consigliabile usare l'attestazione TPM.You should use TPM attestation for production environments.

  1. Accedere al computer SQL Server come amministratore, aprire una console di Windows PowerShell con privilegi elevati e recuperare il nome del computer in uso eseguendo l'accesso alla variabile computername.Sign in to your SQL Server computer as an administrator, open an elevated Windows PowerShell console, and retrieve the name of your computer by accessing the computername variable.

    $env:computername 
    
  2. Installare la funzionalità Host sorvegliato, che consente anche di installare Hyper-V (se non è già installato).Install the Guarded Host feature, which will also install Hyper-V (if it is not installed already).

    Enable-WindowsOptionalFeature -Online -FeatureName HostGuardian -All
    
  3. Al prompt riavviare il computer SQL Server per completare l'installazione di Hyper-V.Restart your SQL Server computer when prompted to complete the installation of Hyper-V.

  4. Se il computer SQL Server è una macchina virtuale, un computer fisico che non supporta l'avvio protetto UEFI o un computer fisico che non è dotato di IOMMU, è necessario rimuovere il requisito VBS per le funzionalità di sicurezza della piattaforma.If your SQL Server computer is a virtual machine, a physical machine that does not support UEFI Secure Boot, or a physical machine not equipped with an IOMMU, you need to remove the VBS requirement for platform security features.

    1. Rimuovere il requisito per l'avvio protetto e IOMMU eseguendo il comando seguente nel computer SQL Server in una console di PowerShell con privilegi elevati:Remove the requirement for Secure Boot and IOMMU by running the following command on your SQL Server computer in an elevated PowerShell console:

      Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard -Name RequirePlatformSecurityFeatures -Value 0
      
    2. Riavviare il computer SQL Server per riportare online VBS con i requisiti ridotti.Restart the SQL Server computer again to get VBS to come online with the lowered requirements.

      Restart-Computer
      
  5. Accedere ancora al computer SQL Server come amministratore, aprire una console di Windows PowerShell con privilegi elevati, generare una chiave host univoca ed esportare la chiave pubblica risultante in un file.Sign in to the SQL Server computer as an administrator again, open an elevated Windows PowerShell console, generate a unique host key, and export the resulting public key to a file.

    Set-HgsClientHostKey 
    Get-HgsClientHostKey -Path $HOME\Desktop\hostkey.cer
    
  6. Copiare manualmente il file della chiave host generato nel passaggio precedente e incollarlo nel computer HGS.Manually copy the host key file, generated in the previous step, to the HGS machine. Le istruzioni seguenti presuppongono che il nome del file sia hostkey.cer e che il file sia stato copiato sul desktop del computer HGS.The below instructions assume your file name is hostkey.cer and you are copying it to your Desktop on the HGS machine.

  7. Nel computer HGS, aprire una console di Windows PowerShell con privilegi elevati e registrare la chiave host del computer SQL Server con HGS:On the HGS computer, open an elevated Windows PowerShell console and register the host key of your SQL Server computer with HGS:

    Add-HgsAttestationHostKey -Name <your SQL Server computer name> -Path $HOME\Desktop\hostkey.cer
    
  8. Nel computer SQL Server eseguire il comando seguente in una console di Windows PowerShell con privilegi elevati, per indicare al computer SQL Server dove eseguire l'attestazione.On the SQL Server computer, run the following command in an elevated Windows PowerShell console, to tell the SQL Server computer where to attest. Assicurarsi di specificare l'indirizzo IP o il nome DNS del computer HGS in uso in entrambe le posizioni degli indirizzi.Make sure you specify the IP address or the DNS name of your HGS computer in both address locations.

    # use http, and not https
    Set-HgsClientConfiguration -AttestationServerUrl http://<IP address or DNS name>/Attestation -KeyProtectionServerUrl http://<IP address or DNS name>/KeyProtection/  
    

Il risultato del comando precedente visualizzerà AttestationStatus = Passed.The result of the above command should show that AttestationStatus = Passed.

Se si verifica un errore HostUnreachable, il computer SQL Server non può comunicare con HGS.If you get a HostUnreachable error, that means your SQL Server computer cannot communicate with HGS. Verificare che sia possibile effettuare il ping del computer HGS.Ensure that you can ping the HGS computer.

Un errore UnauthorizedHost indica che la chiave pubblica non è stata registrata nel server HGS. Per risolvere l'errore ripetere i passaggi 5 e 6.An UnauthorizedHost error indicates that the public key was not registered with the HGS server - repeat steps 5 and 6 to resolve the error.

In caso di qualsiasi altro errore, eseguire Remove-HgsClientHostKey e ripetere i passaggi da 4 a 7.If all else fails, run Remove-HgsClientHostKey and repeat steps 4-7.

Passaggio 3: Abilitare Always Encrypted con enclave sicuri in SQL ServerStep 3: Enable Always Encrypted with secure enclaves in SQL Server

In questo passaggio si abilita la funzionalità Always Encrypted con enclave sicuri nell'istanza di SQL Server.In this step, you will enable the functionality of Always Encrypted using enclaves in your SQL Server instance.

  1. Usando SSMS, connettersi all'istanza di SQL Server come sysadmin senza Always Encrypted abilitato per la connessione di database.Using SSMS, connect to your SQL Server instance as sysadmin without Always Encrypted enabled for the database connection.

    1. Avviare SSMS.Start SSMS.

    2. Nella finestra di dialogo Connetti al server specificare il nome del server, selezionare un metodo di autenticazione e specificare le credenziali.In the Connect to Server dialog, specify your server name, select an authentication method and specify your credentials.

    3. Fare clic su Opzioni >> e selezionare la scheda Always Encrypted.Click Options >> and select the Always Encrypted tab.

    4. Verificare che la casella di controllo Abilita Always Encrypted (crittografia colonna) non sia selezionata.Make sure the Enable Always Encrypted (column encryption) checkbox is not selected.

      Connettersi al server senza Always Encrypted

    5. Selezionare Connetti.Select Connect.

  2. Aprire una nuova finestra di query ed eseguire l'istruzione seguente per impostare il tipo di enclave sicuro sulla sicurezza basata sulla virtualizzazione (VBS).Open a new query window, and execute the below statement to set the secure enclave type to Virtualization Based Security (VBS).

    EXEC sys.sp_configure 'column encryption enclave type', 1;
    RECONFIGURE;
    
  3. Riavviare l'istanza di SQL Server per rendere effettive le modifiche.Restart your SQL Server instance for the previous change to take effect. Per riavviare l'istanza in SQL Server Management Studio, fare clic con il pulsante destro del mouse su di essa in Esplora oggetti e scegliere Riavvia.You can restart the instance in SSMS by right-clicking on it in Object Explorer and selecting Restart. Dopo il riavvio dell'istanza, riconnettersi.Once the instance restarts, reconnect to it.

  4. Verificare che l'enclave sicuro sia ora caricato eseguendo la query seguente:Confirm the secure enclave is now loaded by running the following query:

    SELECT [name], [value], [value_in_use] FROM sys.configurations
    WHERE [name] = 'column encryption enclave type';
    

    La query deve restituire il risultato seguente:The query should return the following result:

    namename Valorevalue value_in_usevalue_in_use
    column encryption enclave typecolumn encryption enclave type 11 11

Passaggio 4: Creare un database di esempioStep 4: Create a sample database

In questo passaggio si crea un database con alcuni dati di esempio e quindi si procede alla crittografia dei dati.In this step, you will create a database with some sample data, which you will encrypt later.

  1. Usando l'istanza di SSMS nel passaggio precedente, eseguire l'istruzione seguente in una finestra di query per creare un nuovo database, denominato ContosoHR.Using the SSMS instance from the previous step, execute the below statement in a query window to create a new database, named ContosoHR.

    CREATE DATABASE [ContosoHR];
    
  2. Creare una nuova tabella con nome Employees.Create a new table, named Employees.

    USE [ContosoHR];
    GO
    
    CREATE SCHEMA [HR];
    GO
    
    CREATE TABLE [HR].[Employees]
    (
        [EmployeeID] [int] IDENTITY(1,1) NOT NULL,
        [SSN] [char](11) NOT NULL,
        [FirstName] [nvarchar](50) NOT NULL,
        [LastName] [nvarchar](50) NOT NULL,
        [Salary] [money] NOT NULL
    ) ON [PRIMARY];
    
  3. Aggiungere alcuni record dei dipendenti alla tabella Employees.Add a few employee records to the Employees table.

    USE [ContosoHR];
    GO
    
    INSERT INTO [HR].[Employees]
            ([SSN]
            ,[FirstName]
            ,[LastName]
            ,[Salary])
        VALUES
            ('795-73-9838'
            , N'Catherine'
            , N'Abel'
            , $31692);
    
    INSERT INTO [HR].[Employees]
            ([SSN]
            ,[FirstName]
            ,[LastName]
            ,[Salary])
        VALUES
            ('990-00-6818'
            , N'Kim'
            , N'Abercrombie'
            , $55415);
    

Passaggio 5: Effettuare il provisioning delle chiavi abilitate per l'enclaveStep 5: Provision enclave-enabled keys

In questo passaggio si crea una chiave master della colonna e una chiave di crittografia di colonna che consentono i calcoli di enclave.In this step, you will create a column master key and a column encryption key that allow enclave computations.

  1. Usando l'istanza di SSMS nel passaggio precedente, in Esplora oggetti espandere il database e passare a Sicurezza > Chiavi Always Encrypted.Using the SSMS instance from the previous step, in Object Explorer, expand your database and navigate to Security > Always Encrypted Keys.

  2. Effettuare il provisioning di una nuova chiave master della colonna abilitata per l'enclave:Provision a new enclave-enabled column master key:

    1. Fare clic con il pulsante destro del mouse su Chiavi Always Encrypted e scegliere Nuova chiave master della colonna.Right-click Always Encrypted Keys and select New Column Master Key....

    2. Selezionare il nome della chiave master della colonna: CMK1.Select your column master key name: CMK1.

    3. Assicurarsi di selezionare Archivio certificati Windows (Utente corrente o Computer locale) o Azure Key Vault.Make sure you select either Windows Certificate Store (Current User or Local Machine) or Azure Key Vault.

    4. Selezionare Consenti calcoli enclave.Select Allow enclave computations.

    5. Se si seleziona Azure Key Vault, accedere ad Azure e selezionare l'insieme di credenziali delle chiavi.If you selected Azure Key Vault, sign in to Azure and select your key vault. Per altre informazioni su come creare un insieme di credenziali delle chiavi per Always Encrypted, vedere Manage your key vaults from Azure portal (Gestire gli insiemi di credenziali delle chiavi dal portale di Azure).For more information on how to create a key vault for Always Encrypted, see Manage your key vaults from Azure portal.

    6. Selezionare il certificato o la chiave di Azure Key Vault se esiste già oppure fare clic sul pulsante Genera certificato per crearne uno nuovo.Select your certificate or Azure Key Value key if it already exists, or click the Generate Certificate button to create a new one.

    7. Selezionare OK.Select OK.

      Consenti calcoli enclave

  3. Creare una nuova chiave di crittografia di colonna abilitata per l'enclave:Create a new enclave-enabled column encryption key:

    1. Fare clic con il pulsante destro del mouse su Chiavi Always Encrypted e scegliere Nuova chiave di crittografia della colonna.Right-click Always Encrypted Keys and select New Column Encryption Key.
    2. Immettere un nome per la nuova chiave di crittografia della colonna: CEK1.Enter a name for the new column encryption key: CEK1.
    3. Nell'elenco a discesa Chiave master della colonna selezionare la chiave master della colonna creata nei passaggi precedenti.In the Column master key dropdown, select the column master key you created in the previous steps.
    4. Selezionare OK.Select OK.

Passaggio 6: Crittografare alcune colonne sul postoStep 6: Encrypt some columns in place

In questo passaggio si esegue la crittografia dei dati archiviati nelle colonne SSN e Salary all'interno dell'enclave lato server, quindi si esegue il test di una query SELECT sui dati.In this step, you will encrypt the data stored in the SSN and Salary columns inside the server-side enclave, and then test a SELECT query on the data.

  1. Aprire una nuova istanza di SSMS e connettersi all'istanza di SQL Server con Always Encrypted abilitato per la connessione di database.Open a new SSMS instance and connect to your SQL Server instance with Always Encrypted enabled for the database connection.

    1. Avviare una nuova istanza di SSMS.Start a new instance of SSMS.

    2. Nella finestra di dialogo Connetti al server specificare il nome del server, selezionare un metodo di autenticazione e specificare le credenziali.In the Connect to Server dialog, specify your server name, select an authentication method and specify your credentials.

    3. Fare clic su Opzioni >> e selezionare la scheda Always Encrypted.Click Options >> and select the Always Encrypted tab.

    4. Selezionare la casella di controllo Abilita Always Encrypted (crittografia colonna) e specificare l'URL di attestazione dell'enclave, ad esempio ht tp://hgs.bastion.local/Attestation.Select the Enable Always Encrypted (column encryption) checkbox and specify your enclave attestation URL (for example, http://hgs.bastion.local/Attestation).

      Connettersi al server con l'attestazione tramite SSMS

    5. Selezionare Connetti.Select Connect.

    6. Se viene richiesto di abilitare la parametrizzazione per le query Always Encrypted, selezionare Abilita.If you are prompted to enable Parameterization for Always Encrypted queries, select Enable.

  2. Usando la stessa istanza di SSMS (con Always Encrypted abilitato), aprire una nuova finestra di query e crittografare le colonne SSN e Salary eseguendo le query seguenti.Using the same SSMS instance (with Always Encrypted enabled), open a new query window and encrypt the SSN and Salary columns by running the below queries.

    USE [ContosoHR];
    GO
    
    ALTER TABLE [HR].[Employees]
    ALTER COLUMN [SSN] [char] (11) COLLATE Latin1_General_BIN2
    ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = [CEK1], ENCRYPTION_TYPE = Randomized, ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256') NOT NULL
    WITH
    (ONLINE = ON);
    
    ALTER TABLE [HR].[Employees]
    ALTER COLUMN [Salary] [money]
    ENCRYPTED WITH (COLUMN_ENCRYPTION_KEY = [CEK1], ENCRYPTION_TYPE = Randomized, ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256') NOT NULL
    WITH
    (ONLINE = ON);
    
    ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;
    

    Nota

    Si noti l'istruzione ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE per cancellare la cache del piano di query per il database nello script precedente.Notice the ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE statement to clear the query plan cache for the database in the above script. Dopo aver modificato la tabella è necessario cancellare i piani per tutti i batch e le stored procedure che accedono alla tabella per aggiornare le informazioni di crittografia dei parametri.After you have altered the table, you need to clear the plans for all batches and stored procedures that access the table, to refresh parameters encryption information.

  3. Per verificare che le colonne SSN e Salary ora sono crittografate, aprire una nuova finestra di query nell'istanza di SSMS senza Always Encrypted abilitato per la connessione di database ed eseguire l'istruzione seguente.To verify the SSN and Salary columns are now encrypted, open a new query window in the SSMS instance without Always Encrypted enabled for the database connection and execute the below statement. La finestra di query restituirà valori crittografati nelle colonne SSN e Salary.The query window should return encrypted values in the SSN and Salary columns. Se si esegue la stessa query usando l'istanza di SSMS con Always Encrypted abilitato, verranno visualizzati i dati decrittografati.If you execute the same query using the SSMS instance with Always Encrypted enabled, you should see the data decrypted.

    SELECT * FROM [HR].[Employees];
    

Passaggio 7: Eseguire query avanzate su colonne crittografateStep 7: Run rich queries against encrypted columns

Ora è possibile eseguire query avanzate sulle colonne crittografate.Now, you can run rich queries against the encrypted columns. Vengono eseguite alcune operazioni di elaborazione query nell'enclave lato server.Some query processing will be performed inside your server-side enclave.

  1. Nell'istanza di SSMS con Always Encrypted abilitato verificare che la parametrizzazione per Always Encrypted sia abilitata.In the SSMS instance with Always Encrypted enabled, make sure Parameterization for Always Encrypted is also enabled.

    1. Selezionare Strumenti dal menu principale di SSMS.Select Tools from the main menu of SSMS.
    2. Selezionare Opzioni.Select Options....
    3. Passare a Esecuzione query > SQL Server > Avanzata.Navigate to Query Execution > SQL Server > Advanced.
    4. Assicurarsi che l'opzione Abilita parametrizzazione per Always Encrypted sia selezionata.Ensure that Enable Parameterization for Always Encrypted is checked.
    5. Selezionare OK.Select OK.
  2. Aprire una nuova finestra di query, incollare ed eseguire la query seguente.Open a new query window, paste in and execute the below query. La query restituisce valori di testo non crittografato e righe che soddisfano i criteri di ricerca specificati.The query should return plaintext values and rows meeting the specified search criteria.

    DECLARE @SSNPattern [char](11) = '%6818';
    DECLARE @MinSalary [money] = $1000;
    SELECT * FROM [HR].[Employees]
    WHERE SSN LIKE @SSNPattern AND [Salary] >= @MinSalary;
    
  3. Riprovare la stessa query nell'istanza di SSMS senza Always Encrypted abilitato e notare l'errore che si verifica.Try the same query again in the SSMS instance that does not have Always Encrypted enabled, and note the failure that occurs.

Passaggi successiviNext Steps

Al termine dell'esercitazione, è possibile passare a una delle esercitazioni seguenti:After completing this tutorial, you can go to one of the following tutorials:

Vedere ancheSee Also