Aracılığıyla paylaş


İki sunucularda aynı simetrik anahtarlar oluşturmak

Bu konuda iki farklı sunucularda bulunan aynı simetrik anahtarlar oluşturma açıklanmaktadır SQL Server 2012kullanarak Transact-SQL. Ciphertext şifresini çözmek için o şifrelemek için kullanılan anahtar gerekir. Hem şifreleme hem de şifre çözme tek bir veritabanında gerçekleştiğinde, anahtar veritabanında depolanır ve, izinleri, şifreleme ve şifre çözme bağlı kullanılabilir. Ancak şifreleme ve şifre çözme ayrı veritabanlarında veya ayrı sunucularda gerçekleştiğinde, bir veritabanında depolanan anahtar ikinci veritabanı kullanılabilir değil

Bu Konuda

  • Başlamadan Önce

    Sınırlamalar ve Kısıtlamalar

    Güvenlik

  • Transact-sql kullanarak iki farklı sunucularda aynı simetrik anahtarlar oluşturmak için

Başlamadan Önce

Sınırlamalar ve Kısıtlamalar

  • C.simetrik anahtar oluşturulduğunda, simetrik anahtar aşağıdakilerden en az birini kullanarak şifrelenmelidir: sertifika, parola, simetrik anahtar, asimetrik anahtar veya sağlayıcı. Her türden birden çok şifreleme anahtarı olabilir. Diğer bir deyişle, tek bir simetrik anahtar, aynı anda birden fazla sertifikaları, parolalar, simetrik anahtar ve asimetrik anahtarları kullanılarak şifrelenebilir.

  • C.simetrik anahtar veritabanı ana anahtar ortak anahtar yerine bir parola ile şifrelenir, Üçlü des şifreleme algoritmasını kullanılır. Bu, aes gibi güçlü şifreleme algoritması ile oluşturulan anahtarları kendilerini zayıf algoritma tarafından güvenlik altına alınmıştır.

Güvenlik

İzinler

Herhangi bir simetrik anahtar alter veritabanı izni gerektirir. Yetkilendirme belirtilirse, veritabanı kullanıcı özelliklerini Al izni veya APPLICATION role alter izni gerektirir. Şifreleme sertifika veya asimetrik anahtar, sertifika veya asimetrik anahtar Görünüm tanımı izni gerektirir. Sadece Windows oturumu açma, SQL Serveroturum açma ve uygulama rolleri simetrik anahtarlar kendi. Grupları ve rolleri simetrik anahtarlar sahibi olamaz.

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]

Transact-SQL'i Kullanma

İki farklı sunucularda aynı simetrik anahtarlar oluşturmak için

  1. İçinde Object Explorer, örneğine bağlanmak Veritabanı Altyapısı.

  2. Standart çubuğunda Yeni sorgu.

  3. Bir anahtar, aşağıdaki create MASTER KEY, create SERTIFIKASı ve simetrik anahtar oluşturma deyimleri çalıştırarak oluşturun.

    CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'My p@55w0Rd';
    GO
    CREATE CERTIFICATE [cert_keyProtection] WITH SUBJECT = 'Key Protection';
    GO
    CREATE SYMMETRIC KEY [key_DataShare] WITH
        KEY_SOURCE = 'My key generation bits. This is a shared secret!',
        ALGORITHM = AES_256, 
        IDENTITY_VALUE = 'Key Identity generation bits. Also a shared secret'
        ENCRYPTION BY CERTIFICATE [cert_keyProtection];
    GO
    
  4. Ayrı sunucuya bağlanın, farklı sorgu penceresini açın ve ikinci bir sunucuda aynı anahtarı oluşturmak için yukarıdaki sql deyimlerini çalıştırın.

  5. Anahtarlar ilk açık simetrik anahtar deyimi ve aşağıdaki seçme deyimini ilk sunucuda çalıştırarak sınayın.

    OPEN SYMMETRIC KEY [key_DataShare] 
        DECRYPTION BY CERTIFICATE cert_keyProtection;
    GO
    SELECT encryptbykey(key_guid('key_DataShare'), 'MyData' )
    GO
    -- For example, the output might look like this: 0x2152F8DA8A500A9EDC2FAE26D15C302DA70D25563DAE7D5D1102E3056CE9EF95CA3E7289F7F4D0523ED0376B155FE9C3
    
  6. İkinci bir sunucuda önceki select deyimi sonucu aşağıdaki kodu yapıştırın değeri olarak @blobve yinelenen anahtar ciphertext şifresini çözebilir doğrulamak için aşağıdaki kodu çalıştırın.

    OPEN SYMMETRIC KEY [key_DataShare] 
        DECRYPTION BY CERTIFICATE cert_keyProtection;
    GO
    DECLARE @blob varbinary(8000);
    SET @blob = SELECT CONVERT(varchar(8000), decryptbykey(@blob));
    GO
    
  7. Simetrik anahtar her iki sunucularda kapatın.

    CLOSE SYMMETRIC KEY [key_DataShare];
    GO
    

Daha fazla bilgi için, aşağıdakilere bakın:

Başa Dön bağlantısıyla kullanılan ok simgesi[Top]