Aracılığıyla paylaş


SIMETRIK ANAHTAR (Transact-SQL) CREATE

Bir simetrik anahtar üretir ve özelliklerini belirtir.

Topic link iconTransact-SQL sözdizimi kuralları

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ında belirtir.Geçici anahtarlarının adları (#sign) bir sayı ile başlamalıdır.Örneğin, # temporaryKey900007.Birden fazla #'ile başlayan bir ada sahip bir simetrik anahtar oluşturamıyor.Bir EKM sağlayıcı kullanarak geçici bir simetrik anahtar oluşturamıyor.

  • owner_name yetkilendirme
    Bu anahtara sahip veritabanı kullanıcı veya uygulama rolün adını belirtir.

  • Provider_Name sağlayıcı
    Bir Genişletilebilir anahtar Management (EKM) sağlayıcı ve adını belirtir.Anahtar EKM aygıttan verilir.Sağlayıcı, ilk PROVIDER CREATE deyim kullanarak tanımlanması gerekir.Dış anahtar sağlayıcı oluşturma hakkında daha fazla bilgi için bkz: Genişletilmiş Anahtar Yönetimi (EKM) anlama.

  • KEY_SOURCE ='pass_phrase'
    Almak istediğiniz anahtar türetmek bir geçiş tümceciği belirtir.

  • IDENTITY_VALUE ='identity_phrase'
    Almak istediğiniz bir geçici anahtar şifrelenen verileri etiketlemek için bir GUID oluşturmak bir kimlik tümcecik belirtir.

  • key_name_in_provider
    Genişletilmiş anahtar yönetimi sağlayıcısında başvurulan adını belirtir.

  • CREATION_DISPOSITION**=** create_new
    Yeni bir anahtar kutusu Genişletilebilir Key Management aygıtta oluşturur.Aygıttaki anahtar zaten varsa, deyim hatasını vererek başarısız oluyor.

  • CREATION_DISPOSITION**=** open_existing
    Eşlemeler bir SQL Server simetrik anahtar için varolan bir Genişletilebilir Key Management anahtarı. CREATION_DISPOSITION = OPEN_EXISTING sağlanmayabilir, bu CREATE_NEW için varsayılan kullanılır.

  • certificate_name
    Şifrelemek için kullanılan sertifikanın adını belirtir simetrik anahtar.Sertifika, veritabanında önceden mevcut olmalıdır.

  • 'password'
    Specifies a password from which to derive a TRIPLE_DES key with which to secure the symmetric key.password must meet the Windows password policy requirements of the computer that is running the instance of SQL Server.Her zaman güçlü parolalar kullanmanız gerekir.

  • symmetric_key_name
    Oluşturulan anahtarı şifrelemek için kullanılacak bir simetrik anahtar belirtir.Belirtilen anahtar veritabanında önceden mevcut olmalıdır ve anahtar açık olması gerekir.

  • asym_key_name
    Oluşturulan anahtarı şifrelemek için kullanılacak bir asimetrik anahtar belirtir.Bu bir asimetrik anahtar veritabanı içinde varolmalıdır.

Remarks

Simetrik anahtar oluşturulduğunda, simetrik anahtar en az birini kullanarak şifrelenmelidir: Sertifika, parola, simetrik anahtar, asimetrik anahtar veya sağlayıcı. Bu anahtar, her türden birden çok şifreleme olabilir.Diğer bir deyişle, aynı anda birden çok sertifika, parolaları, simetrik anahtar ve asimetrik anahtarlar kullanarak tek bir simetrik anahtar şifrelenebilir.

Uyarı

Parola yerine, veritabanı yöneticisi anahtarının ortak anahtar ile şifrelenmiş bir simetrik anahtar üç DES şifreleme algoritması kullanılır.Bu yüzden, AES gibi bir güçlü şifreleme algoritması ile oluşturulmuş anahtarlar kendileri daha zayıf bir algoritma güvenli.

Isteğe bağlı parola anahtar birden çok kullanıcıya göndermeden önce simetrik anahtar şifrelemek için kullanılır.

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

IDENTITY_VALUE yeni simetrik anahtar ile şifrelenmiş verilere etiketi, bir GUID oluşturur.Bu etiketleme anahtarlar, şifrelenmiş veri için eşleştirmek için kullanılır.GUID, belirli bir deyim tarafından üretilen her zaman aynı olacaktır.Bir deyim, bir GUID oluşturmak için kullanıldıktan sonra tümcecik etkin olarak kullanan en az bir oturuma olduğu sürece tümceciği yeniden kuramıyor.Isteğe bağlı bir yan tümce IDENTITY_VALUE; ancak, bir geçici anahtar şifrelenen verileri saklarken, kullanmanızı öneririz.

Hiçbir varsayılan şifreleme algoritması vardır.

Important noteImportant Note:

We do not recommend using the RC4 and RC4_128 stream ciphers to protect sensitive data.SQL Server does not further encode the encryption performed with such keys.

Simetrik anahtarlar hakkında bilgiler de görülebilir sys.symmetric_keys kataloğunu görüntüleyin.

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

DES algoritması ile ilgili açıklama:

  • DESX yanlış adı.Simetrik anahtar ALGORITMASı ile oluşturulan DESX = aslında üç DES şifreleme, 192-bit bir anahtarla kullanın.DESX algoritmasını sağlanır.This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

  • Simetrik anahtar ALGORITMASı ile oluşturulan = 192 bit anahtarlı üç DES TRIPLE_DES_3KEY kullanılır.

  • Simetrik anahtar ALGORITMASı ile oluşturulan = 128 bitlik bir anahtar ile üç DES TRIPLE_DES kullanılır.

Admin RC4 algoritması:

Aynı RC4 veya RC4_128 anahtar _GUID farklı veri blokları üzerinde kullanımı aynı olan RC4 sonuçlanacak yinelenen anahtar nedeni SQL Server bir salt otomatik olarak sağlamaz. Aynı RC4 kullanan art arda çok zayıf şifreleme sonuçlanacak iyi bilinen bir hata anahtarıdır.Bu nedenle de RC4 ve RC4_128 anahtar sözcükler itiraz.This feature will be removed in a future version of Microsoft SQL Server. Do not use this feature in new development work, and modify applications that currently use this feature as soon as possible.

İzinler

ANY SIMETRIK ANAHTAR ALTER veritabanı izni gerektirir.yetkilendirme belirtilirse, veritabanı kullanıcı özelliklerini AL iznine veya uygulama rolü ALTER izni gerektirir.Şifreleme sertifikası ya da asimetrik anahtar, sertifika veya asimetrik anahtar GÖRÜNÜM TANıMı izni gerektirir.Yalnızca Windows oturumlarının listelendiği, SQL Server simetrik anahtarlar, oturum ve uygulama rollerine sahip olabilir. Simetrik anahtar gruplarını ve rol sahibi olamaz.

Örnekler

C.Simetrik anahtar oluşturma

Aşağıdaki örnek, adı verilen bir simetrik anahtar oluşturur. JanainaKey09 kullanarak AES 256 algoritma ve sonra da yeni bir anahtarla şifreler sertifika Shipping04.

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

b.Geçici bir simetrik anahtar oluşturma

Aşağıdaki örnek, adlı geçici bir simetrik anahtar oluşturur. #MarketingXXV Geçiş tümceciği: The square of the hypotenuse is equal to the sum of the squares of the sides.The key is provisioned with a GUID that is generated from the string Pythagoras and encrypted with certificate 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

c.Bir Genişletilebilir Key Management (EKM) aygıtı kullanarak bir simetrik anahtar oluşturma

Aşağıdaki örnek, adı verilen bir simetrik anahtar oluşturur. MySymKey bir sağlayıcı kullanarak denir. MyEKMProvider ve bir anahtar adı KeyForSensitiveData. Bunun için yetkilendirme atar User1 ve sistem yöneticisi olarak adlandırılan sağlayıcı zaten kayıtlı olduğunu varsayar. MyEKMProvider içinde SQL Server.

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