SERTIFIKASı (Transact-sql) oluştur

Sertifika bir veritabanına ekler.

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

Sözdizimi

CREATE CERTIFICATE certificate_name [ AUTHORIZATION user_name ] 
    { FROM <existing_keys> | <generate_new_keys> }
    [ ACTIVE FOR BEGIN_DIALOG =  { ON | OFF } ]
        
<existing_keys> ::= 
    ASSEMBLY assembly_name
    | { 
        [ EXECUTABLE ] FILE = 'path_to_file'
        [ WITH PRIVATE KEY ( <private_key_options> ) ] 
      }
    | { 
        BINARY = asn_encoded_certificate
        [ WITH PRIVATE KEY ( <private_key_options> ) ]
      }
<generate_new_keys> ::= 
    [ ENCRYPTION BY PASSWORD = 'password' ] 
    WITH SUBJECT = 'certificate_subject_name' 
    [ , <date_options> [ ,...n ] ] 

<private_key_options> ::=
      { 
        FILE = 'path_to_private_key'
         [ , DECRYPTION BY PASSWORD = 'password' ]
         [ , ENCRYPTION BY PASSWORD = 'password' ]  
      }
    |
      { 
        BINARY = private_key_bits
         [ , DECRYPTION BY PASSWORD = 'password' ]
         [ , ENCRYPTION BY PASSWORD = 'password' ]  
      }

<date_options> ::=
    START_DATE = 'datetime' | EXPIRY_DATE = 'datetime'

Bağımsız değişkenler

  • certificate_name
    Hangi tarafından sertifika veritabanında bilinen adıdır.

  • YETKİLENDİRMEuser_name
    Bu sertifikaya sahip kullanıcı adıdır.

  • DERLEMEassembly_name
    Veritabanına zaten yüklenmiş imzalı bir derleme belirtir.

  • [YÜRÜTÜLEBİLİR] FILE ='path_to_file'
    Sertifikayı içeren der kodlanmış bir dosyanın dosya adı dahil tam yolunu belirtir. YÜRÜTÜLEBİLİR seçeneği kullanılırsa, sertifikası tarafından imzalanmış bir dll dosyasıdır. path_to_fileYerel bir yol veya bir ağ konumuna bir unc yolu olabilir. Dosya güvenlik bağlamında erişilecek SQL Serverhizmet hesabı. Bu hesabın gerekli dosya sistemi izinleri olması gerekir.

  • ÖZEL ANAHTAR İLE
    Sertifikanın özel anahtarını içine yüklendiğini belirtir SQL Server. Bir dosyadan sertifika oluşturulduğunda bu yan tümcesi yalnızca geçerli olur. Özel anahtar bir derleme yüklemek için kullanın Sertifika alter.

  • FILE ='path_to_private_key'
    Dosya adı, özel anahtarı içeren tam yolunu belirtir. path_to_private_keyYerel bir yol veya bir ağ konumuna bir unc yolu olabilir. Dosya güvenlik bağlamında erişilecek SQL Serverhizmet hesabı. Bu hesabın gerekli dosya sistemi izinleri olması gerekir.

    [!NOT]

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

  • asn_encoded_certificate
    asn ikili sürekli belirtilen sertifika bit olarak kodlanmış.

  • İKİLİ =private_key_bits
    İkili sürekli belirtilen özel anahtar biti. Bu bit şifreli biçimde olabilir. Şifreli, kullanıcı bir şifre çözme parola sağlamalısınız. Bu parolayı parola ilkesi denetimleri gerçekleştirilmez. Özel anahtar bitleri bir pvk dosya biçiminde olmalıdır.

  • Şifre çözme by password ='key_password'
    Bir dosyadan alınan özel anahtar şifresini çözmek için gereken parolayı belirtir. Bu, özel anahtarın boş bir parola ile korunmuşsa opsiyoneldir. Özel anahtar parola koruması olmadan bir dosyaya kaydetme önerilmez. Parola gereklidir, ancak hiçbir parola belirtilen deyimi başarısız olur.

  • BY ENCRYPTION password ='password'
    Özel anahtarı şifrelemek için kullanılacak parolayı belirtir. Sertifika bir parola ile şifrelemek isterseniz bu seçeneği kullanın. Bu yan tümcesi atlanırsa, özel anahtar veritabanı ana anahtar kullanılarak şifrelenecektir. passwordörneğini çalıştıran bilgisayarda Windows parola ilkesi gereksinimlerini karşılamalıdır SQL Server. Daha fazla bilgi için, bkz. Parola İlkesi.

  • Konu ='certificate_subject_name'
    Terim konu x.509 standart olarak tanımlanan sertifika meta veri alanına başvurur. Konu en fazla 128 karakter uzunluğunda olabilir. 128 Karakterden fazla konular, katalogda depolanır, ancak tam konu adı sertifikayı içeren büyük ikili nesne (blob) koruyacak kesilecek.

  • Başlangıç_tarihi ='datetime'
    Hangi sertifikanın geçerli olur tarihidir. Başlangıç_tarihi belirtilmezse, geçerli tarihe eşit ayarlanacaktır. Başlangıç_tarihi utc zaman ve Tarih ve saati için dönüştürülebilir herhangi bir biçimde belirtilebilir.

  • EXPIRY_DATE ='datetime'
    Sertifikanın sona erdiği tarihtir. Belirtilmezse, EXPIRY_DATE bir yıl sonra Başlangıç_tarihi tarih ayarlanır. EXPIRY_DATE utc zaman ve Tarih ve saati için dönüştürülebilir herhangi bir biçimde belirtilebilir. SQL ServerService Broker sona erme tarihini denetler; Ancak, sertifika için şifreleme kullanıldığında sona erme zorlanmaz.

  • ETKİN için BEGIN_DIALOG = { on | KAPALI}
    Sertifika başlatıcı için bulunmaz bir Service Brokeriletişim konuşma. Varsayılan değer açık'tır.

Açıklamalar

Bir x.509 standart izler ve x.509 V1 alanları destekleyen düzeyi veritabanı güvenilir bir sertifikadır. Sertifika Oluştur, bir dosya veya derleme bir sertifika yükleyebilirsiniz. Bu deyimi de bir anahtar çifti ve otomatik olarak imzalanan bir sertifika oluşturabilir.

Özel anahtarlar tarafından üretilen SQL Server1024 bit uzunluktadır vardır Özel anahtarlar, bir dış kaynaktan alınan 384 bit en az uzunluğunu ve 4.096 bit maksimum uzunluğu vardır. Alınan özel anahtar uzunluğu tamsayı olmalıdır çok 64 bit.

Özel anahtarı tarafından belirtilen ortak anahtara karşılık gelmesi gerekir certificate_name.

Bir kapsayıcıyı sertifika oluşturduğunuzda, özel anahtar yükleme isteğe bağlıdır. Ama SQL Serverbir otomatik olarak imzalanan sertifika oluşturduğu özel anahtarı her zaman oluşturulur. Varsayılan olarak, özel anahtar veritabanı ana anahtar kullanılarak şifrelenir. Veritabanı ana anahtar yok ve şifre yok belirtilirse, deyimi başarısız olur.

Özel anahtar veritabanı ana anahtarı ile şifrelenir zaman ENCRYPTION by password seçeneği gerekli değildir. Bu seçenek yalnızca özel anahtar parola ile şifrelenir kullanın. Parola belirtilmezse, sertifikanın özel anahtarını veritabanı ana anahtar kullanılarak şifrelenecektir. Veritabanı ana anahtarı açılamıyor bu yan ihmal bir hata neden olur.

Veritabanı ana anahtar ile şifrelenmiş özel anahtar şifre çözme parola belirtmeniz gerekmez.

[!NOT]

Yerleşik işlevleri için şifreleme ve imzalama sertifikalarının sona erme tarihlerini denetlemez. Kullanıcılar bu fonksiyonların ne zaman sertifika süre sonu denetimi için karar vermeniz gerekir.

İkili sertifika açıklamasını kullanarak oluşturulabilir certencoded (Transact-sql)ve CERTPRIVATEKEY (Transact-sql)işlevleri. Kullanan örnek CERTPRIVATEKEYve CERTENCODEDbir sertifika başka bir veritabanına kopyalamak için bkz: örnek konu b certencoded (Transact-sql).

İzinler

Veritabanı sertifika oluştur izni gerektirir. Sadece Windows oturumu açma, SQL Serveroturum açma ve uygulama rolleri sertifikaları kendi. Grupları ve rolleri sertifika sahibi olamaz.

Örnekler

A.Otomatik olarak imzalanan bir sertifika oluşturma

Aşağıdaki örnek, adı verilen bir sertifika oluşturur Shipping04. Bu sertifikanın özel anahtarı parola kullanılarak korunur.

USE AdventureWorks2012;
CREATE CERTIFICATE Shipping04 
   ENCRYPTION BY PASSWORD = 'pGFD4bb925DGvbd2439587y'
   WITH SUBJECT = 'Sammamish Shipping Records', 
   EXPIRY_DATE = '20121031';
GO

USE AdventureWorks2012;
CREATE CERTIFICATE Shipping04 
   ENCRYPTION BY PASSWORD = 'pGFD4bb925DGvbd2439587y'
   WITH SUBJECT = 'Sammamish Shipping Records', 
   EXPIRY_DATE = '20121031';
GO

B.Bir dosyadan bir sertifika oluşturma

Aşağıdaki örnek veritabanındaki dosyalardan anahtar çifti yüklenirken bir sertifika oluşturur.

USE AdventureWorks2012;
CREATE CERTIFICATE Shipping11 
    FROM FILE = 'c:\Shipping\Certs\Shipping11.cer' 
    WITH PRIVATE KEY (FILE = 'c:\Shipping\Certs\Shipping11.pvk', 
    DECRYPTION BY PASSWORD = 'sldkflk34et6gs%53#v00');
GO 

USE AdventureWorks2012;
CREATE CERTIFICATE Shipping11 
    FROM FILE = 'c:\Shipping\Certs\Shipping11.cer' 
    WITH PRIVATE KEY (FILE = 'c:\Shipping\Certs\Shipping11.pvk', 
    DECRYPTION BY PASSWORD = 'sldkflk34et6gs%53#v00');
GO 

C.İmzalı bir yürütülebilir dosyadan bir sertifika oluşturma

USE AdventureWorks2012;
CREATE CERTIFICATE Shipping19 
    FROM EXECUTABLE FILE = 'c:\Shipping\Certs\Shipping19.dll';
GO

USE AdventureWorks2012;
CREATE CERTIFICATE Shipping19 
    FROM EXECUTABLE FILE = 'c:\Shipping\Certs\Shipping19.dll';
GO

Seçimli, sen-ebilmek yaratmak bir derlemesinden dllDosya ve derleme bir sertifika oluşturun.

USE AdventureWorks2012;
CREATE ASSEMBLY Shipping19 
    FROM ' c:\Shipping\Certs\Shipping19.dll' 
    WITH PERMISSION_SET = SAFE;
GO
CREATE CERTIFICATE Shipping19 FROM ASSEMBLY Shipping19;
GO

USE AdventureWorks2012;
CREATE ASSEMBLY Shipping19 
    FROM ' c:\Shipping\Certs\Shipping19.dll' 
    WITH PERMISSION_SET = SAFE;
GO
CREATE CERTIFICATE Shipping19 FROM ASSEMBLY Shipping19;
GO

Ayrıca bkz.

Başvuru

alter SERTIFIKASı (Transact-sql)

SERTIFIKASı (Transact-sql) bırak

backup SERTIFIKASı (Transact-sql)

eventdata (Transact-sql)

certencoded (Transact-sql)

CERTPRIVATEKEY (Transact-sql)

Kavramlar

Şifreleme hiyerarşisi