Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik: SQL Server 2019 (15.x) és újabb verziók Windows
Azure SQL Database-en
Ez az oktatóanyag bemutatja, hogyan fejleszthet olyan alkalmazásokat, amelyek az Always Encrypted kiszolgálóoldali biztonságos enklávéját biztonságos enklávékkal használó adatbázis-lekérdezéseket bocsátanak ki.
Előfeltételek
Mielőtt követné az alábbi lépéseket ebben az oktatóanyagban, győződjön meg arról, hogy elvégezte az Always Encrypted biztonságos enklávékkal való használatának valamelyik vagy oktatóanyagát.
Emellett szüksége van a Visual Studio-ra (a 2022-es verzió ajánlott) – innen töltheti https://visualstudio.microsoft.com/le. Az alkalmazásfejlesztési környezetnek a .NET Framework 4.6.1 vagy újabb verzióját vagy a .NET Core 3.1-et vagy újabbat kell használnia.
1. lépés: A Visual Studio Project beállítása
Ha az Always Encryptedt biztonságos enklávékkal szeretné használni egy .NET-keretrendszeralkalmazásban, győződjön meg arról, hogy az alkalmazás a .NET-keretrendszer 4.6.1-s vagy újabb verzióját célozza. Ha az Always Encryptedt biztonságos enklávékkal szeretné használni egy .NET Core-alkalmazásban, győződjön meg arról, hogy az alkalmazás a .NET Core 3.1-et vagy újabb verziót célozza.
Emellett ha az oszlop főkulcsát az Azure Key Vaultban tárolja, integrálnia kell az alkalmazást a Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider NuGet szolgáltatással is.
Nyissa meg a Visual Studiót.
Hozzon létre egy új C#-konzolalkalmazási (.NET-keretrendszer/ Core) projektet.
Győződjön meg arról, hogy a projekt legalább .NET-keretrendszer 4.6-os vagy .NET Core 3.1-et céloz meg. Kattintson a jobb gombbal a projektre a Megoldáskezelőben, válassza a Tulajdonságok lehetőséget , és állítsa be a Cél keretrendszert.
Telepítse a következő NuGet-csomagot az Eszközök (főmenü) >NuGet Package Manager>. Futtassa a következő kódot a Package Manager konzolon.
Install-Package Microsoft.Data.SqlClient -Version 5.0.1Ha az Azure Key Vaultot használja az oszlop főkulcsainak tárolásához, telepítse a következő NuGet-csomagokat az Eszközök (főmenü) >NuGet Package>. Futtassa a következő kódot a Package Manager konzolon.
Install-Package Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider -Version 3.0.0 Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory
2. lépés: Az alkalmazáslogika megvalósítása
Az alkalmazás csatlakozni fog az egyik oktatóanyagban létrehozott ContosoHR-adatbázishoz , lásd : Előfeltételek , és egy olyan lekérdezést fog futtatni, amely tartalmazza az LIKESSN oszlop predikátumát és egy tartomány-összehasonlítást a Fizetés oszlopban.
Cserélje le a Program.cs fájl tartalmát (amelyet a Visual Studio hoz létre) a következő kódra.
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(); } } } }Frissítse az adatbázis kapcsolati karakterláncot.
- Adja meg az érvényes kiszolgálónevet és az adatbázis-hitelesítési beállításokat.
- Ha az adatbázishoz igazolást használ, állítsa az Enclave Attestation Protocol értékét az igazolási szolgáltatás megfelelő értékére (
HGSa Host Guardian szolgáltatáshoz vagyAASa Microsoft Azure-igazoláshoz). Ellenkező esetben az Enclave Igazolási protokollt állítsaNoneértékre.
Hozza létre és futtassa az alkalmazást.
Lásd még
- Az Always Encrypted használata az SQL Serverhez készült Microsoft .NET-adatszolgáltatóval
- Példa az Azure Key Vault-szolgáltató Always Encrypted használatával való használatára
- Példa az Azure Key Vault-szolgáltató biztonságos enklávékkal engedélyezett Always Encrypted használatával történő használatára