Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för: SQL Server 2019 (15.x) och senare – Windows endast
Azure SQL Database
I den här självstudien lär du dig hur du utvecklar ett program som utfärdar databasfrågor som använder en säker enklav på serversidan för Always Encrypted med säkra enklaver.
Förutsättningar
Kontrollera att du har slutfört en av handledningarna i Komma igång med Always Encrypted med säkra enklaver, så att du kan avancera till nästa steg nedan i denna handledning.
Dessutom behöver du Visual Studio (version 2022 rekommenderas) – du kan ladda ned det från https://visualstudio.microsoft.com/. Din programutvecklingsmiljö måste använda .NET Framework 4.6.1 eller senare eller .NET Core 3.1 eller senare.
Steg 1: Konfigurera ditt Visual Studio-projekt
Om du vill använda Always Encrypted med säkra enklaver i ett .NET Framework-program måste du se till att programmet riktar in sig på .NET Framework 4.6.1 eller senare. Om du vill använda Always Encrypted med säkra enklaver i ett .NET Core-program måste du se till att programmet riktar in sig på .NET Core 3.1 eller senare.
Om du lagrar din kolumnhuvudnyckel i Azure Key Vault måste du också integrera ditt program med Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider NuGet.
Öppna Visual Studio.
Skapa ett nytt C#-konsolappsprojekt (.NET Framework/Core).
Kontrollera att projektet har minst .NET Framework 4.6 eller .NET Core 3.1 som mål. Högerklicka på projektet i Solution Explorer, välj Egenskaper och ange Målramverket.
Installera följande NuGet-paket genom att gå till Verktyg (huvudmenyn) >NuGet Package Manager>Package Manager Console. Kör följande kod i Package Manager-konsolen.
Install-Package Microsoft.Data.SqlClient -Version 5.0.1Om du använder Azure Key Vault för att lagra dina kolumnhuvudnycklar installerar du följande NuGet-paket genom att gå till Verktyg (huvudmenyn) >NuGet Package Manager>Package Manager Console. Kör följande kod i Package Manager-konsolen.
Install-Package Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider -Version 3.0.0 Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory
Steg 2: Implementera din programlogik
Ditt program ansluter till ContosoHR-databasen som skapades i någon av självstudierna, se Förutsättningar och den kör en fråga som innehåller predikatet LIKE i SSN-kolumnen och en intervalljämförelse i kolumnen Lön .
Ersätt innehållet i Program.cs -filen (genereras av Visual Studio) med följande kod.
using System; using Microsoft.Data.SqlClient; using System.Data; namespace ConsoleApp1 { class Program { static void Main(string[] args) { // Connection string for SQL Server string connectionString = "Data Source = myserver; Initial Catalog = ContosoHR; Column Encryption Setting = Enabled;Attestation Protocol = HGS; Enclave Attestation Url = http://hgs.bastion.local/Attestation; Integrated Security = true"; // Connection string for Azure SQL Database with Intel SGX enclaves //string connectionString = "Data Source = myserver.database.windows.net; Initial Catalog = ContosoHR; Column Encryption Setting = Enabled;Attestation Protocol = AAS; Enclave Attestation Url = https://myattestationprovider.uks.attest.azure.net/attest/SgxEnclave; User ID=user; Password=<password>"; // Connection string for Azure SQL Database with VBS enclaves //string connectionString = "Data Source = myserver.database.windows.net; Initial Catalog = ContosoHR; Column Encryption Setting = Enabled;Attestation Protocol = None; User ID=user; Password=<password>"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); SqlCommand cmd = connection.CreateCommand(); cmd.CommandText = @"SELECT [SSN], [FirstName], [LastName], [Salary] FROM [HR].[Employees] WHERE [SSN] LIKE @SSNPattern AND [Salary] > @MinSalary;"; SqlParameter paramSSNPattern = cmd.CreateParameter(); paramSSNPattern.ParameterName = @"@SSNPattern"; paramSSNPattern.DbType = DbType.AnsiStringFixedLength; paramSSNPattern.Direction = ParameterDirection.Input; paramSSNPattern.Value = "%9838"; paramSSNPattern.Size = 11; cmd.Parameters.Add(paramSSNPattern); SqlParameter MinSalary = cmd.CreateParameter(); MinSalary.ParameterName = @"@MinSalary"; MinSalary.DbType = DbType.Currency; MinSalary.Direction = ParameterDirection.Input; MinSalary.Value = 20000; cmd.Parameters.Add(MinSalary); cmd.ExecuteNonQuery(); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { Console.WriteLine(reader[0] + ", " + reader[1] + ", " + reader[2] + ", " + reader[3]); } Console.ReadKey(); } } } }Uppdatera databasens anslutningssträng.
- Ange det giltiga servernamnet och inställningarna för databasautentisering.
- Om du använder attestering för databasen anger du Enclave Attestation Protocol till rätt värde för attesteringstjänsten (
HGSför Host Guardian Service ellerAASför Microsoft Azure Attestation). Annars anger du Enclave Attestation Protocol tillNone.
Skapa och kör programmet.