Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: Windows
Azure SQL Veritabanı'nda SQL Server 2019 (15.x) ve sonraki sürümleri
Bu öğretici, güvenli kuşatmalarla Always Encrypted için sunucu tarafı güvenli kapanım kullanan veritabanı sorguları veren bir uygulama geliştirmeyi öğretir.
Önkoşullar
Bu öğreticideki aşağıdaki adımları uygulamadan önce Güvenli kuşatmalarla Always Encrypted kullanmaya başlama öğreticilerinden birini tamamladığınızdan emin olun.
Ayrıca, Visual Studio'ya ihtiyacınız vardır (sürüm 2022 önerilir) - adresinden https://visualstudio.microsoft.com/indirebilirsiniz. Uygulama geliştirme ortamınız .NET Framework 4.6.1 veya üzerini ya da .NET Core 3.1 veya sonraki bir sürümü kullanmalıdır.
1. Adım: Visual Studio Projenizi ayarlama
Bir .NET Framework uygulamasında Always Encrypted'ı güvenli kuşatmalarla kullanmak için uygulamanızın .NET Framework 4.6.1 veya üzerini hedeflediğinden emin olmanız gerekir. Bir .NET Core uygulamasında Always Encrypted'ı güvenli kuşatmalarla kullanmak için uygulamanızın .NET Core 3.1 veya üzerini hedeflediğinden emin olmanız gerekir.
Ayrıca, sütun ana anahtarınızı Azure Key Vault'ta depolarsanız, uygulamanızı Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider NuGet ile tümleştirmeniz de gerekir.
Visual Studio'yu açın.
Yeni bir C# Konsol Uygulaması (.NET Framework / Core) projesi oluşturun.
Projenizin en az .NET Framework 4.6 veya .NET Core 3.1'i hedeflediğinden emin olun. Çözüm Gezgini'nde projeye sağ tıklayın, Özellikler'i seçin ve Hedef çerçeveyi ayarlayın.
Araçlar (ana menü) >NuGet Paket Yöneticisi Paket Yöneticisi>Konsolu'na giderek aşağıdaki NuGet paketini yükleyin. Paket Yöneticisi Konsolu'nda aşağıdaki kodu çalıştırın.
Install-Package Microsoft.Data.SqlClient -Version 5.0.1Sütun ana anahtarlarınızı depolamak için Azure Key Vault kullanıyorsanız Araçlar (ana menü) >NuGet Paket Yöneticisi Paket Yöneticisi>Konsolu'na giderek aşağıdaki NuGet paketlerini yükleyin. Paket Yöneticisi Konsolu'nda aşağıdaki kodu çalıştırın.
Install-Package Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider -Version 3.0.0 Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory
2. Adım: Uygulama mantığınızı uygulama
Uygulamanız, öğreticilerden birinde oluşturulan ContosoHR veritabanına bağlanacak ve sütununda LIKE koşulunu içeren bir sorgu ile Maaş sütununda bir aralık karşılaştırması çalıştıracak, ayrıntılar için Önkoşullar bölümüne bakınız.
Program.cs dosyasının içeriğini (Visual Studio tarafından oluşturulan) aşağıdaki kodla değiştirin.
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(); } } } }Veritabanı bağlantı dizesini güncelleyin.
- Geçerli sunucu adını ve veritabanı kimlik doğrulama ayarlarınızı ayarlayın.
- Veritabanınız için kanıtlama kullanıyorsanız Kanıtlama Protokolü'ni kanıtlama hizmetiniz için doğru değere ayarlayın (
HGSKonak Koruyucu Hizmeti veyaAASMicrosoft Azure Kanıtlama için). Aksi takdirde, Enclave Kanıtlama ProtokolüNoneolarak ayarlayın.
Uygulamayı derleyin ve çalıştırın.