SIMETRIK anahtar (Transact-sql) oluştur

C.simetrik anahtar üretir ve özelliklerini belirler.

Konu bağlantısı simgesi Transact-SQL Sözdizim Kuralları

Sözdizimi

CREATE SYMMETRIC KEY key_name [ AUTHORIZATION owner_name ]
    [ FROM PROVIDER Provider_Name ]
    WITH <key_options> [ , ... n ]
        |
    ENCRYPTION BY <encrypting_mechanism> [ , ... n ]
<key_options> ::=
    KEY_SOURCE = 'pass_phrase'
    |
    ALGORITHM = <algorithm>
    |
    IDENTITY_VALUE = 'identity_phrase'
    |
        PROVIDER_KEY_NAME = 'key_name_in_provider' 
    |
    CREATION_DISPOSITION = {CREATE_NEW | OPEN_EXISTING }
<algorithm> ::=
    DES | TRIPLE_DES | TRIPLE_DES_3KEY | RC2 | RC4 | RC4_128
    | DESX | AES_128 | AES_192 | AES_256 
<encrypting_mechanism> ::=
        CERTIFICATE certificate_name 
    |
    PASSWORD = 'password' 
    |
    SYMMETRIC KEY symmetric_key_name 
    |
    ASYMMETRIC KEY asym_key_name

Bağımsız değişkenler

  • Key_name
    Simetrik anahtar tanındığı benzersiz bir ad veritabanını belirtir. Geçici anahtar adlarını bir sayı (#sign) ile başlamalıdır. Örneğin, # temporaryKey900007. Birden fazla # ile başlayan bir ada sahip bir simetrik anahtar oluşturulamıyor. B.geçici bir simetrik anahtar kullanarak bir ekm sağlayıcısı oluşturamıyor.

  • YETKİLENDİRMEowner_name
    Bu anahtarı kendi veritabanı kullanıcı veya uygulama rolü belirtir.

  • SAĞLAYICIDANProvider_Name
    Genişletilebilir anahtar yönetimi (ekm) sağlayıcısı ve adını belirtir. Anahtarı ekm aygıt verilmez. Sağlayıcı ilk oluşturma SAĞLAYICISINI bildirimi kullanılarak tanımlanmalıdır. Dış anahtar sağlayıcısı oluşturma hakkında daha fazla bilgi için bkz: Genişletilebilir anahtar yönetimi (ekm).

    [!NOT]

    Bu seçenek içerilen bir veritabanında kullanılamaz.

  • key_source ='pass_phrase'
    Geçiş tümceciği gelen anahtarı türetmek belirtir.

  • IDENTITY_VALUE ='identity_phrase'
    Hangi geçici anahtar ile şifrelenmiş verileri etiketleme için bir GUID oluşturmak bir kimlik tümcecik belirtir.

  • PROVIDER_KEY_NAME**='key_name_in_provider'**
    Başvurulan Genişletilebilir Key Management sağlayıcının adını belirtir.

    [!NOT]

    Bu seçenek içerilen bir veritabanında kullanılamaz.

  • CREATION_DISPOSITION = create_new
    Yeni bir anahtar olabilir Genişletilebilir Key Management aygıtta oluşturur. Anahtar zaten aygıtta varsa, deyimi hata ile başarısız olur.

  • CREATION_DISPOSITION = OPEN_EXISTING
    Haritalar bir SQL ServerVarolan bir Genişletilebilir Key Management anahtarı simetrik anahtar. Eğer CREATION_DISPOSITION = OPEN_EXISTING sağlanan değil, bu create_new için varsayılan.

  • certificate_name
    Simetrik anahtarı şifrelemek için kullanılan sertifikanın adını belirtir. Sertifika veritabanında bulunması gerekir.

  • 'password'
    Parola gelen simetrik anahtar güvenliğini sağlamak için bir TRIPLE_DES anahtarı türetmek belirtir. passwordörneğini çalıştıran bilgisayarda Windows parola ilkesi gereksinimlerini karşılamalıdır SQL Server. Her zaman güçlü parolalar kullanmalısınız.

  • symmetric_key_name
    Oluşturulan anahtarı şifrelemek için kullanılacak bir simetrik anahtar belirtir. Belirtilen anahtar zaten veritabanında bulunmalı ve anahtarı açık olmalıdır.

  • asym_key_name
    Oluşturulan anahtarı şifrelemek için kullanılan asimetrik anahtar belirtir. Bu asimetrik anahtar zaten veritabanında bulunmalı.

Açıklamalar

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.

Dikkat notuDikkat

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.

İsteğe bağlı parola anahtarı birden çok kullanıcı için dağıtmadan önce simetrik anahtarı şifrelemek için kullanılabilir.

Geçici anahtar, onları oluşturan kullanıcının sahip olduğu. Geçici anahtar yalnızca geçerli oturum için geçerlidir.

IDENTITY_VALUE yeni simetrik anahtar ile şifrelenmiş etiketi verileri olan bir GUID oluşturur. Bu etiketleme anahtarlar şifreli verileri eşleştirmek için kullanılır. Belirli bir ifade tarafından oluşturulan GUID her zaman aynı olacaktır. Bir ifade, bir GUID oluşturmak için kullanıldıktan sonra ifade var olduğu sürece aktif olarak ifade kullanan en az bir oturuma yeniden kullanılamaz. IDENTITY_VALUE isteğe bağlı bir yan olduğunu; Ancak, geçici anahtar ile şifrelenmiş veriyi depolarken bunu kullanmanızı öneririz.

Orada hiçbir varsayılan şifreleme algoritması.

Önemli notÖnemli

RC4 ve RC4_128 akış şifreleri kullanarak önemli verileri korumak için önermiyoruz. SQL Serverdaha böyle tuşları ile gerçekleştirilen şifreleme kodlamak değil.

Simetrik anahtarlar hakkında bilgi görünür görülebilirsys.symmetric_keysKatalog Katalog görünümü.

Simetrik anahtarlar, simetrik anahtar şifreleme sağlayıcısı'ndan oluşturulan tarafından şifrelenemez.

des algoritmaları ile ilgili açıklama:

  • desx yanlış seçildi. Simetrik anahtar ALGORİTMASI ile oluşturulan desx = aslında 192 bitlik bir anahtar ile Üçlü des şifreleme kullanın. desx algoritmasını sağlanır. Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.

  • Simetrik anahtar ALGORİTMASI ile oluşturulan = TRIPLE_DES_3KEY kullan Üçlü des 192 bitlik bir anahtar.

  • Simetrik anahtar ALGORİTMASI ile oluşturulan = TRIPLE_DES kullan Üçlü des 128 bitlik bir anahtar.

Deprecation RC4 algoritması:

Çünkü aynı RC4 veya RC4_128 KEY_GUID farklı veri blokları üzerinde aynı RC4 anahtar neden tekrar SQL Serverbir tuz otomatik sağlamaz. Aynı RC4 anahtar arka arkaya çok zayıf şifreleme sonuçlanacak bir iyi bilinen hata kullanmaktır. Bu nedenle biz RC4 ve RC4_128 anahtar kelimeler kullanım. Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmayın ve bu özelliği kullanmakta olan uygulamaları mümkün olduğunca erken bir zamanda değiştirin.

Dikkat notuDikkat

RC4 algoritması yalnızca geriye dönük uyumluluk için desteklenir. Yeni malzeme yalnızca veritabanı uyumluluk düzeyi 90 ya da 100 olduğunda RC4 veya RC4_128 kullanılarak şifrelenebilir. (Önerilmez.) Bir aes algoritması gibi yeni bir algoritma kullanın. De SQL Server 2012Malzeme RC4 veya RC4_128 kullanılarak şifrelenmiş herhangi bir uyumluluk düzeyi şifresi.

İ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.

Örnekler

A.Bir simetrik anahtar oluşturma

Aşağıdaki örnek olarak adlandırılan bir simetrik anahtar oluşturur JanainaKey09kullanarak AES 256algoritması ve ardından sertifikayı yeni anahtarla şifreler Shipping04.

CREATE SYMMETRIC KEY JanainaKey09 WITH ALGORITHM = AES_256
    ENCRYPTION BY CERTIFICATE Shipping04;
GO

CREATE SYMMETRIC KEY JanainaKey09 WITH ALGORITHM = AES_256
    ENCRYPTION BY CERTIFICATE Shipping04;
GO

B.B.geçici bir simetrik anahtar oluşturma

B.geçici bir simetrik anahtar adında aşağıdaki örnek oluşturur #MarketingXXVdan pass phrase: The square of the hypotenuse is equal to the sum of the squares of the sides. Anahtar dizeden oluşturulan GUID ile sağlanır Pythagorasve sertifikayla şifrelenmiş Marketing25.

CREATE SYMMETRIC KEY #MarketingXXV 
     WITH ALGORITHM = AES_128,
     KEY_SOURCE 
     = 'The square of the hypotenuse is equal to the sum of the squares of the sides',
     IDENTITY_VALUE = 'Pythagoras'
     ENCRYPTION BY CERTIFICATE Marketing25;
GO

CREATE SYMMETRIC KEY #MarketingXXV 
     WITH ALGORITHM = AES_128,
     KEY_SOURCE 
     = 'The square of the hypotenuse is equal to the sum of the squares of the sides',
     IDENTITY_VALUE = 'Pythagoras'
     ENCRYPTION BY CERTIFICATE Marketing25;
GO

C.Bir Genişletilebilir anahtar yönetimi (ekm) aygıtı kullanarak bir simetrik anahtar oluşturma

Aşağıdaki örnek olarak adlandırılan bir simetrik anahtar oluşturur MySymKeyadında bir sağlayıcı kullanarak MyEKMProviderve bir anahtar adı KeyForSensitiveData. Yetkilerini atar User1ve sistem yöneticisi olarak adlandırılan sağlayıcı zaten kayıtlı olduğunu varsayar MyEKMProviderde SQL Server.

CREATE SYMMETRIC KEY MySymKey
AUTHORIZATION User1
FROM PROVIDER EKMProvider
WITH
PROVIDER_KEY_NAME='KeyForSensitiveData',
CREATION_DISPOSITION=OPEN_EXISTING;
GO

CREATE SYMMETRIC KEY MySymKey
AUTHORIZATION User1
FROM PROVIDER EKMProvider
WITH
PROVIDER_KEY_NAME='KeyForSensitiveData',
CREATION_DISPOSITION=OPEN_EXISTING;
GO

Ayrıca bkz.

Başvuru

SIMETRIK anahtar (Transact-sql) değiştirme

SIMETRIK anahtar (Transact-sql) bırak

görülebilirsys.symmetric_keysKatalog (Transact-sql)

Kavramlar

Şifreleme algoritması seçin

Şifreleme hiyerarşisi

Genişletilebilir anahtar yönetimi (ekm)