Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro: SQL Server 2019 (15.x) a novější – Pouze Windows
Azure SQL Database
V tomto kurzu se naučíte vyvíjet aplikaci, která vydává databázové dotazy, které používají zabezpečené enklávy na straně serveru pro Always Encrypted se zabezpečenými enklávami.
Požadavky
Než budete postupovat podle následujících kroků v tomto kurzu, ujistěte se, že jste dokončili jeden z začínáte používat funkci Always Encrypted se zabezpečenými enklávami kurzů.
Kromě toho potřebujete Sadu Visual Studio (doporučuje se verze 2022) – můžete si ji stáhnout z https://visualstudio.microsoft.com/. Vaše vývojové prostředí aplikace musí používat rozhraní .NET Framework 4.6.1 nebo novější nebo .NET Core 3.1 nebo novější.
Krok 1: Nastavení projektu sady Visual Studio
Pokud chcete používat funkci Always Encrypted se zabezpečenými enklávy v aplikaci .NET Framework, musíte zajistit, aby vaše aplikace cílila na rozhraní .NET Framework 4.6.1 nebo vyšší. Pokud chcete používat funkci Always Encrypted se zabezpečenými enklávy v aplikaci .NET Core, musíte zajistit, aby vaše aplikace cílila na .NET Core 3.1 nebo vyšší.
Pokud navíc ukládáte hlavní klíč sloupce ve službě Azure Key Vault, musíte také integrovat aplikaci s NuGetem Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider.
Otevřete Visual Studio.
Vytvořte nový projekt konzolové aplikace C# (.NET Framework / Core).
Ujistěte se, že váš projekt cílí alespoň na rozhraní .NET Framework 4.6 nebo .NET Core 3.1. Klikněte pravým tlačítkem myši na projekt v Průzkumníku řešení, vyberte Vlastnosti a nastavte cílovou architekturu.
Nainstalujte následující balíček NuGet tak, že přejdete dokonzoly Správce>balíčků NuGet> (hlavní nabídka). V konzole Správce balíčků spusťte následující kód.
Install-Package Microsoft.Data.SqlClient -Version 5.0.1Pokud k ukládání hlavních klíčů sloupců používáte Azure Key Vault, nainstalujte následující balíčky NuGet, a to tak, že přejdete do Nástroje (hlavní nabídka) >Správce balíčků NuGet>Konzole správce balíčků. V konzole Správce balíčků spusťte následující kód.
Install-Package Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider -Version 3.0.0 Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory
Krok 2: Implementace logiky aplikace
Vaše aplikace se připojí k databázi ContosoHR , která byla vytvořena v jednom z kurzů, viz Požadavky a spustí dotaz obsahující LIKE predikát ve sloupci SSN a porovnání rozsahu ve sloupci Plat .
Obsah souboru Program.cs (vygenerovaného sadou Visual Studio) nahraďte následujícím kódem.
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(); } } } }Aktualizujte připojovací řetězec databáze.
- Nastavte platný název serveru a nastavení ověřování databáze.
- Pokud pro vaši databázi používáte ověření identity, nastavte protokol Enclave Attestation na správnou hodnotu pro vaši službu ověření identity (
HGSpro službu Strážce hostitele neboAASpro ověření identity Microsoft Azure). V opačném případě nastavte enklávový protokol atestace naNone.
Sestavte a spusťte aplikaci.