ASİMETRİK anahtar (Transact-sql) oluştur

Asimetrik anahtar veritabanında oluşturur.

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

Sözdizimi

CREATE ASYMMETRIC KEY Asym_Key_Name 
   [ AUTHORIZATION database_principal_name ]
   {
      [ FROM <Asym_Key_Source> ]
      |
      WITH <key_option>
   [ ENCRYPTION BY <encrypting_mechanism> ]

<Asym_Key_Source>::=
   FILE = 'path_to_strong-name_file'
   |
   EXECUTABLE FILE = 'path_to_executable_file'
   |
   ASSEMBLY Assembly_Name
   |
   PROVIDER Provider_Name

<key_option> ::=
   ALGORITHM = <algorithm>
      |
   PROVIDER_KEY_NAME = 'key_name_in_provider'
      |
      CREATION_DISPOSITION = { CREATE_NEW | OPEN_EXISTING }

<algorithm> ::=
      { RSA_512 | RSA_1024 | RSA_2048 } 

<encrypting_mechanism> ::=
    PASSWORD = 'password' 

Bağımsız değişkenler

  • KaynakAsym_Key_Source
    Asimetrik anahtar çifti yüklemek kaynaktan belirtir.

  • YETKİLENDİRMEdatabase_principal_name
    Asimetrik anahtarın sahibini belirtir. Sahibi bir rol ya da bir grup olamaz. Bu seçenek belirtilmezse, geçerli kullanıcının sahibi olacak.

  • FILE ='path_to_strong-name_file'
    Hangi anahtar çifti yüklemek kesin ad dosyasının yolunu belirtir.

    [!NOT]

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

  • ÇALIŞTIRILABİLİR dosya ='path_to_executable_file'
    Ortak anahtar yüklemek bir derleme dosyası belirtir. Dan Windows API tarafından max_path 260 karakter sınırlı.

    [!NOT]

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

  • DERLEMEAssembly_Name
    Ortak anahtar yüklemek bir derleme adını belirtir.

  • BY ENCRYPTION<key_name_in_provider>
    Anahtar nasıl şifrelenir belirtir. Bir sertifika, parola veya asimetrik anahtar olabilir.

  • KEY NAME = { 'key_name_in_provider'
    Dış sağlayıcı anahtar adını belirtir. Dış anahtar yönetimi hakkında daha fazla bilgi için bkz: Genişletilebilir anahtar yönetimi (ekm).

  • CREATION_DISPOSITION = create_new
    Genişletilebilir Key Management cihaza yeni bir anahtar oluşturur. prov_key_name, aygıtta anahtar adını belirtmek için kullanılmalıdır. Anahtar zaten aygıtta deyimi hata ile başarısız olur.

  • CREATION_DISPOSITION = OPEN_EXISTING
    Haritalar bir SQL ServerVarolan bir Genişletilebilir Key Management anahtar asimetrik anahtar. prov_key_name, aygıtta anahtar adını belirtmek için kullanılmalıdır. Eğer CREATION_DISPOSITION = OPEN_EXISTING sağlanan değil, create_new varsayılandır.

  • PAROLA = 'password'
    Da özel anahtarı şifrelemek bir parola belirtir. Bu maddenin mevcut değilse, özel anahtar veritabanı ana anahtarı ile şifrelenir. passworden çok 128 karakter olduğunu. passwordörneğini çalıştıran bilgisayarda Windows parola ilkesi gereksinimlerini karşılamalıdır SQL Server.

Açıklamalar

Bir asimetrik anahtar veritabanı düzeyinde güvenilir bir varlıktır. Varsayılan haliyle, bu varlık, bir ortak anahtar ve özel anahtar içerir. from yan tümcesi kullanıldığında, create ASIMETRIK anahtar yeni bir anahtar çifti oluşturur. from yan tümcesi ile çalıştırıldığında, asimetrik anahtar oluşturma bir anahtar çifti bir dosyadan alır veya ortak anahtar bir derlemesinden alır.

Varsayılan olarak, özel anahtar veritabanı ana anahtar tarafından korunur. Hiçbir veritabanı ana anahtarı oluşturduysanız, özel anahtarı korumak için bir parola gereklidir. Veritabanı ana anahtar yoksa, parola isteğe bağlıdır.

Özel anahtar-ebilmek var olmak 512, 1024 veya 2048 bit sayısı kadar.

İzinler

create ASIMETRIK anahtar veritabanı izni gerektirir. Yetkilendirme yan tümcesi belirtilirse, asıl veritabanı özelliklerini Al izni veya APPLICATION role alter izni gerektirir. Sadece Windows oturumu açma, SQL Serveroturum açma ve uygulama rolleri asimetrik anahtarları kendi. Grupları ve rolleri asimetrik anahtarları sahibi olamaz.

Örnekler

A.Asimetrik anahtar oluşturma

Aşağıdaki örnek, adlı bir asimetrik anahtar oluşturur PacificSales09kullanarak RSA_2048algoritması ve bir parola ile özel anahtarı korur.

CREATE ASYMMETRIC KEY PacificSales09 
    WITH ALGORITHM = RSA_2048 
    ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>'; 
GO

CREATE ASYMMETRIC KEY PacificSales09 
    WITH ALGORITHM = RSA_2048 
    ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>'; 
GO

B.Bir kullanıcıya yetki veren bir dosyadan bir asimetrik anahtar oluşturma

Aşağıdaki örnek, asimetrik anahtar oluşturur PacificSales19bir anahtar çifti bir dosyada saklanır ve kullanıcı yetki Christinaasimetrik anahtar kullanılacak.

CREATE ASYMMETRIC KEY PacificSales19 AUTHORIZATION Christina 
    FROM FILE = 'c:\PacSales\Managers\ChristinaCerts.tmp'  
    ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>';
GO

CREATE ASYMMETRIC KEY PacificSales19 AUTHORIZATION Christina 
    FROM FILE = 'c:\PacSales\Managers\ChristinaCerts.tmp'  
    ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>';
GO

C.Bir ekm sağlayıcısı'ndan bir asimetrik anahtar oluşturma

Aşağıdaki örnek, asimetrik anahtar oluşturur EKM_askey1gelen bir dosyada saklanan bir anahtar çifti. Sonra adlı bir Genişletilebilir Key Management sağlayıcı kullanarak şifreler EKMProvider1, bu sağlayıcı bir anahtar adı ve key10_user1.

CREATE ASYMMETRIC KEY EKM_askey1 
    FROM PROVIDER EKM_Provider1
    WITH 
        ALGORITHM = RSA_512, 
        CREATION_DISPOSITION = CREATE_NEW
        , PROVIDER_KEY_NAME  = 'key10_user1' ;
GO

CREATE ASYMMETRIC KEY EKM_askey1 
    FROM PROVIDER EKM_Provider1
    WITH 
        ALGORITHM = RSA_512, 
        CREATION_DISPOSITION = CREATE_NEW
        , PROVIDER_KEY_NAME  = 'key10_user1' ;
GO

Ayrıca bkz.

Başvuru

alter ASIMETRIK anahtar (Transact-sql)

ASİMETRİK anahtar (Transact-sql) bırak

Kavramlar

Şifreleme algoritması seçin

Şifreleme hiyerarşisi