Aracılığıyla paylaş


Öğretici: Always Encrypted'ı kullanmaya başlama

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen Örneği

Bu öğretici, Always Encrypted'ı kullanmaya başlamayı öğretir. Size şunu gösterir:

  • Veritabanınızda seçili sütunları şifreleme.
  • Şifrelenmiş sütunları sorgulama.

Önkoşullar

Bu eğitim için şunlara ihtiyacınız var:

1. Adım: Veritabanı şemasını oluşturma ve doldurma

Bu adımda İnsan Kaynakları şemasını ve Çalışanlar tablosunu oluşturacaksınız. Ardından tabloyu bazı verilerle dolduracaksınız.

  1. Veritabanınıza bağlanın. SSMS'den veritabanına bağlanma yönergeleri için bkz . Hızlı Başlangıç: SQL Server Management Studio (SSMS) kullanarak Azure SQL Veritabanı'na veya Azure SQL Yönetilen Örneği'ne bağlanmave sorgulama veya Hızlı Başlangıç: SQL Server Management Studio (SSMS) kullanarak SQL Server örneğini bağlama ve sorgulama.

  2. ContosoHR veritabanı için yeni bir sorgu penceresi açın.

  3. Employees adlı yeni bir tablo oluşturmak için aşağıdaki deyimleri yapıştırıp yürütün.

    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];
    
  4. Employees tablosuna birkaç çalışan kaydı eklemek için aşağıdaki satırları yapıştırın ve yürütün.

    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
    );
    

2. Adım: Sütunları şifreleme

Bu adımda, Always Encrypted için bir sütun ana anahtarı ve bir sütun şifreleme anahtarı sağlarsınız. Ardından, Çalışanlar tablosundaki SSN ve Maaş sütunlarını şifreleyeceksiniz.

SSMS, bir sütun ana anahtarı, sütun şifreleme anahtarı ayarlayarak ve seçili sütunları şifreleyerek Always Encrypted'ı kolayca yapılandırmanıza yardımcı olan bir sihirbaz sağlar.

  1. Nesne Gezgini'ndeVeritabanları>ContosoHR>Tabloları'yı genişletin.

  2. Çalışanlar tablosuna sağ tıklayın ve Always Encrypted sihirbazını açmak için Sütunları Şifrele'yi seçin.

    Always Encrypted Sihirbazı'nı açma işleminin ekran görüntüsü.

  3. Sihirbazın Giriş sayfasında İleri'yi seçin.

  4. Sütun Seçimi sayfasında.

    1. SSN ve Maaş sütunlarını seçin. SSN sütunu için belirleyici şifrelemeyi ve Maaş sütunu için rastgele şifrelemeyi seçin. Deterministik şifreleme, şifrelenmiş sütunlarda eşitlik karşılaştırmaları içeren nokta arama aramaları gibi sorguları destekler. Rastgele şifreleme, şifrelenmiş sütunlarda herhangi bir hesaplamayı desteklemez.
    2. CEK-Auto1 (Yeni)'yi her iki sütun için de sütun şifreleme anahtarı olarak bırakın. Bu anahtar henüz yok ve sihirbaz tarafından oluşturulacak.
    3. sonrakiseçin.

    Always Encrypted Sihirbazı'nın sütun seçimi ekran görüntüsü.

  5. Ana Anahtar Yapılandırması sayfasında, sihirbaz tarafından oluşturulacak yeni bir sütun ana anahtarı yapılandırın. İlk olarak, sütun ana anahtarınızı depolamak istediğiniz yeri seçmeniz gerekir. Sihirbaz iki anahtar deposu türünü destekler:

    • Azure Key Vault - Veritabanınız Azure'daysa önerilir
    • Windows sertifika deposu

    Genel olarak, özellikle veritabanınız Azure'daysa Azure Key Vault önerilir.

    • Azure Key Vault'ı kullanmak için:

      1. Azure Key Vault'a tıklayın.
      2. Oturum aç'ı seçin ve Azure'da oturum açmayı tamamlayın.
      3. Oturum açtıktan sonra sayfa, erişiminiz olan aboneliklerin ve anahtar kasalarının listesini görüntüler. Kullanmak istediğiniz anahtar kasasını içeren bir Azure aboneliği seçin.
      4. Anahtar kasanızı seçin.
      5. sonrakiseçin.

      Azure Key Vault kullanılarak Always Encrypted Sihirbazı ana anahtar seçiminin ekran görüntüsü.

    • Windows sertifika depolarını kullanmak için:

      1. Windows sertifika deposu'ni seçin.

      2. Varsayılan Geçerli Kullanıcı seçimini değiştirmeyin. Bu, sihirbaza Geçerli Kullanıcı deposunda bir sertifika (yeni sütun ana anahtarınız) oluşturmasını ister.

        Sertifika deposu kullanılarak Always Encrypted Sihirbazı ana anahtar seçiminin ekran görüntüsü.

      3. sonrakiseçin.

  6. In-Place Şifreleme Ayarları sayfasında, veritabanında enklav etkin olmadığı için ek yapılandırma gerekmez. sonrakiseçin.

  7. Çalıştırma Ayarları sayfasında, şifrelemeye devam etmek mi yoksa daha sonra yürütülecek bir PowerShell betiği oluşturmak mı istediğiniz sorulur. Varsayılan ayarları bırakın ve İleri'yi seçin.

  8. Özet sayfasında, sihirbaz yürütülecek eylemler hakkında sizi bilgilendirecektir. Tüm bilgilerin doğru olup olmadığını denetleyin ve Son'u seçin.

  9. Sonuçlar sayfasında sihirbazın işlemlerinin ilerleme durumunu izleyebilirsiniz. Tüm işlemler başarıyla tamamlanana kadar bekleyin ve Kapat'ı seçin.

    Always Encrypted Sihirbazı'nın ekran görüntüsü özeti.

  10. (İsteğe bağlı) Sihirbazın veritabanınızda yaptığı değişiklikleri keşfedin.

    1. ContosoHR>Güvenliği>Always Encrypted Anahtarları'nı genişleterek sütun ana anahtarının meta veri nesnelerini ve sihirbazın oluşturduğu sütun şifrelemesini keşfedin.

    2. Anahtar meta verileri içeren sistem kataloğu görünümlerine karşı aşağıdaki sorguları da çalıştırabilirsiniz.

      SELECT * FROM sys.column_master_keys;
      SELECT * FROM sys.column_encryption_keys
      SELECT * FROM sys.column_encryption_key_values
      
    3. Nesne Gezgini'ndeÇalışanlar tablosuna sağ tıklayın ve Betik Tablosu'nu>> olarak seçin. Bu, Çalışanlar tablosunun CREATE TABLE deyimiyle yeni bir sorgu penceresi açar. SSN ve Maaş sütunlarının tanımlarında görünen ENCRYPTED WITH yan tümcesine dikkat edin.

    4. Şifrelenmiş iki sütun için sütun düzeyinde şifreleme meta verilerini almak için sys.columns dosyasında aşağıdaki sorguyu da çalıştırabilirsiniz.

      SELECT
      [name]
      , [encryption_type]
      , [encryption_type_desc]
      , [encryption_algorithm_name]
      , [column_encryption_key_id]
      FROM sys.columns
      WHERE [encryption_type] IS NOT NULL;
      

3. Adım: Şifrelenmiş sütunları sorgulama

  1. Bağlantınız için Always Encrypted devre dışı bırakılmış olarak veritabanınıza bağlanın.

    1. Yeni bir sorgu penceresi açın.
    2. Sorgu penceresinde herhangi bir yere sağ tıklayın ve Bağlantı> seçin. Bu işlem Veritabanı Altyapısına Bağlan iletişim kutusunu açar.
    3. Seçenekleri<< belirleyin. Bu, Veritabanı Altyapısına Bağlan iletişim kutusunda ek sekmeler gösterir.
    4. Always Encrypted sekmesini seçin.
    5. Always Encrypted'ı Etkinleştir (sütun şifrelemesi) seçeneğinin seçili olmadığından emin olun.
    6. Bağlan seçeneğini seçin.

    Always Encrypted devre dışı için SSMS bağlantı seçeneğinin ekran görüntüsü.

  2. Yapıştırın ve aşağıdaki sorguyu çalıştırın. Sorgu ikili şifrelenmiş veriler döndürmelidir.

    SELECT [SSN], [Salary] FROM [HR].[Employees]
    

    Şifrelenmiş sütunlardan gelen şifreleme metni sonuçlarının ekran görüntüsü.

  3. Bağlantınız için Always Encrypted etkinken veritabanınıza bağlanın.

    1. Sorgu penceresinde herhangi bir yere sağ tıklayın ve Bağlantı> seçin. Bu işlem Veritabanı Altyapısına Bağlan iletişim kutusunu açar.
    2. Seçenekleri<< belirleyin. Bu, Veritabanı Altyapısına Bağlan iletişim kutusunda ek sekmeler gösterir.
    3. Always Encrypted sekmesini seçin.
    4. Always Encrypted'ı Etkinleştir (sütun şifrelemesi) seçeneğini belirleyin.
    5. Bağlan seçeneğini seçin.

    Always Encrypted etkin için SSMS bağlantı seçeneğinin ekran görüntüsü.

  4. Aynı sorguyu yeniden çalıştırın. Veritabanı bağlantınız için Always Encrypted etkinleştirildiğinden, SSMS'deki istemci sürücüsü her iki şifrelenmiş sütunda depolanan verilerin şifresini çözmeyi dener. Azure Key Vault kullanıyorsanız Azure'da oturum açmanız istenebilir.

    Şifrelenmiş sütunlardan düz metin sonuçlarının ekran görüntüsü.

  5. Always Encrypted için Parametreleştirmeyi etkinleştirin. Bu özellik, verileri şifrelenmiş sütunlara göre filtreleyen (veya şifrelenmiş sütunlara veri ekleyen) sorgular çalıştırmanızı sağlar.

    1. SSMS'nin ana menüsünden Sorgu'yu seçin.
    2. Sorgu Seçenekleri'ni seçin....
    3. Yürütme>Gelişmiş Ayarlar'a girin.
    4. Always Encrypted için Parametreleştirmeyi Etkinleştir seçeneğinin işaretli olduğundan emin olun.
    5. Tamam'ı seçin.

    Var olan bir sorgu penceresinde parametreleştirmeyi etkinleştiren ekran görüntüsü.

  6. Verileri şifrelenmiş SSN sütununa göre filtreleyen aşağıdaki sorguyu yapıştırın ve yürütün. Sorgu düz metin değerleri içeren bir satır döndürmelidir.

    DECLARE @SSN [char](11) = '795-73-9838'
    SELECT [SSN], [Salary] FROM [HR].[Employees]
    WHERE [SSN] = @SSN
    
  7. İsteğe bağlı olarak, erişim ilkesi izin modeliyle yapılandırılmış Azure Key Vault kullanıyorsanız, kullanıcı verileri koruyan sütun ana anahtarına erişmeden şifrelenmiş sütunlardan düz metin verileri almaya çalıştığında neler olduğunu görmek için aşağıdaki adımları izleyin.

    1. Anahtar unwrap kasanızın erişim ilkesinde kendiniz için anahtar iznini kaldırın. Daha fazla bilgi için bkz. Key Vault erişim ilkesi atama.
    2. SSMS'deki istemci sürücüsü bir anahtar kasasından alınan sütun şifreleme anahtarlarını 2 saat boyunca önbelleğe aldığı için SSMS'yi kapatın ve yeniden açın. Bu, anahtar önbelleğinin boş olmasını sağlar.
    3. Bağlantınız için Always Encrypted etkinken veritabanınıza bağlanın.
    4. Yapıştırın ve aşağıdaki sorguyu çalıştırın. Sorgu, gerekli unwrap iznin eksik olduğunu belirten hata iletisiyle başarısız olmalıdır.
    SELECT [SSN], [Salary] FROM [HR].[Employees]
    

Sonraki Adımlar

Ayrıca bakınız