Aracılığıyla paylaş


ALTER SERTIFIKASI (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAnaliz Platformu Sistemi (PDW)Microsoft Fabric'te SQL veritabanı

Sertifikanın özel anahtarını şifrelemek için kullanılan parolayı değiştirir, özel anahtarı kaldırır veya yoksa özel anahtarı içeri aktarır. Sertifikanın kullanılabilirliğini Hizmet Aracısı olarak değiştirir.

Transact-SQL söz dizimi kuralları

Syntax

-- Syntax for SQL Server and Azure SQL Database  
  
ALTER CERTIFICATE certificate_name   
      REMOVE PRIVATE KEY  
    | WITH PRIVATE KEY ( <private_key_spec> )  
    | WITH ACTIVE FOR BEGIN_DIALOG = { ON | OFF }  
  
<private_key_spec> ::=   
      {   
        { FILE = 'path_to_private_key' | BINARY = private_key_bits }  
         [ , DECRYPTION BY PASSWORD = 'current_password' ]  
         [ , ENCRYPTION BY PASSWORD = 'new_password' ]  
      }  
    |  
      {  
         [ DECRYPTION BY PASSWORD = 'current_password' ]  
         [ [ , ] ENCRYPTION BY PASSWORD = 'new_password' ]  
      }  
-- Syntax for Parallel Data Warehouse  
  
ALTER CERTIFICATE certificate_name   
{  
      REMOVE PRIVATE KEY  
    | WITH PRIVATE KEY (   
        FILE = '<path_to_private_key>',  
        DECRYPTION BY PASSWORD = '<key password>' )
}  

Arguments

certificate_name
Sertifikanın veritabanında bilindiği benzersiz ad.

ÖZEL ANAHTARı KALDıR
Özel anahtarın artık veritabanında tutulacağını belirtir.

ÖZEL ANAHTAR İLE Sertifikanın özel anahtarının SQL Server'a yüklendiğini belirtir.

DOSYA ='path_to_private_key'
Özel anahtarın dosya adı da dahil olmak üzere tam yolunu belirtir. Bu parametre yerel bir yol veya ağ konumuna giden bir UNC yolu olabilir. Dosyaya SQL Server hizmet hesabının güvenlik bağlamında erişilir. Bu seçeneği kullandığınızda, hizmet hesabının belirtilen dosyaya erişimi olduğundan emin olun.

Yalnızca bir dosya adı belirtirseniz, dosya örneğin varsayılan kullanıcı verileri klasörüne kaydedilir. Bu klasör SQL Server DATA klasörü olabilir veya olmayabilir. SQL Server Express LocalDB için, örneğin varsayılan kullanıcı verileri klasörü örneği oluşturan hesabın %USERPROFILE% ortam değişkeni tarafından belirtilen yoldur.

İKILI ='private_key_bits'
için geçerlidir: SQL Server 2012 (11.x) ve üzeri.

İkili sabit olarak belirtilen özel anahtar bitleri. Bu bitler şifrelenmiş biçimde olabilir. Şifrelenirse bir şifre çözme parolası sağlamanız gerekir. SQL Server bu parola üzerinde parola ilkesi denetimleri gerçekleştirmez. Özel anahtar bitleri PVK dosya biçiminde olmalıdır.

PAROLAYLA ŞIFRE ÇÖZME ='current_password'
Özel anahtarın şifresini çözmek için gereken parolayı belirtir.

PAROLAYLA ŞIFRELEME ='new_password'
Veritabanındaki sertifikanın özel anahtarını şifrelemek için kullanılan parolayı belirtir. new_password , SQL Server örneğini çalıştıran bilgisayarın Windows parola ilkesi gereksinimlerini karşılamalıdır. Daha fazla bilgi için bkz. parola ilkesi .

BEGIN_DIALOG = IÇIN ETKİn { ON | KAPALI }
Sertifikayı bir Hizmet Aracısı iletişim kutusu konuşmasının başlatıcısı için kullanılabilir hale getirir.

Remarks

Özel anahtar , certificate_name tarafından belirtilen ortak anahtara karşılık gelir.

Dosyadaki parola null parolayla korunuyorsa PASSWORD ILE ŞIFRE ÇÖZME yan tümcesini atlayabilirsiniz.

Veritabanında zaten var olan bir sertifikanın özel anahtarını içeri aktardığınızda, özel anahtar veritabanı ana anahtarı tarafından otomatik olarak korunur. Özel anahtarı parolayla korumak için PASSWORD ILE ENCRYPTION yan tümcesini kullanın.

ÖZEL ANAHTARI KALDIR seçeneği sertifikanın özel anahtarını veritabanından siler. Sertifikayı kullanarak imzaları doğrularken veya özel anahtar gerektirmeyen Hizmet Aracısı senaryolarında özel anahtarı kaldırabilirsiniz. Simetrik anahtarı koruyan bir sertifikanın özel anahtarını kaldırmayın. Sertifikayla doğrulanması gereken ek modülleri veya dizeleri imzalamak veya sertifikayla şifrelenmiş bir değerin şifresini çözmek için özel anahtarı geri yüklemeniz gerekir.

Özel anahtar veritabanı ana anahtarı kullanılarak şifrelendiğinde şifre çözme parolası belirtmeniz gerekmez.

Özel anahtarı şifrelemek için kullanılan parolayı değiştirmek için FILE veya BINARY yan tümcelerini belirtmeyin.

Important

Özel anahtarı veritabanından kaldırmadan önce her zaman arşiv kopyasını alın. Daha fazla bilgi için bkz . BACKUP CERTIFICATE (Transact-SQL) ve CERTPRIVATEKEY (Transact-SQL).

WITH PRIVATE KEY seçeneği, kapsanan bir veritabanında kullanılamaz.

Sınırlamalar

Sertifika adları oluşturulduktan sonra değiştirilemez. ALTER CERTIFICATE sertifikaları yeniden adlandırmayı desteklemez. Farklı bir sertifika adı kullanmanız gerekiyorsa yeni bir sertifika oluşturmanız ve bağımlılıkları geçirmeniz gerekir.

TDE sertifikaları için geçici çözüm

Saydam Veri Şifrelemesi (TDE) sertifikasını farklı bir adla değiştirmeniz gerekiyorsa:

  1. Geçerli sertifikayı ve özel anahtarı yedekleyin:

    BACKUP CERTIFICATE OldTDECert
    TO FILE = 'C:\Backup\OldTDECert.cer'
    WITH PRIVATE KEY (
        FILE = 'C:\Backup\OldTDECert.pvk',
        ENCRYPTION BY PASSWORD = '<password>'
    );
    
  2. Doğru ada sahip yeni sertifikayı oluşturun:

    CREATE CERTIFICATE NewTDECert
    WITH SUBJECT = 'TDE Certificate - Correct Name';
    
  3. TDE ile şifrelenmiş her veritabanı için şifreleme anahtarını değiştirin:

    USE EncryptedDB;
    GO
    
    ALTER DATABASE ENCRYPTION KEY
    ENCRYPTION BY SERVER CERTIFICATE NewTDECert;
    
  4. Tüm veritabanları geçirildikten sonra eski sertifikayı bırakın:

    USE master;
    GO
    
    DROP CERTIFICATE OldTDECert;
    

Important

TDE değişiklikleri yapmadan önce sertifikaları ve özel anahtarları her zaman yedekleyin. Yedeklemeleri veritabanı sunucusundan ayrı güvenli bir konumda depolayın.

Permissions

Sertifika üzerinde ALTER izni gerektirir.

Examples

A. Sertifikanın özel anahtarını kaldırma

ALTER CERTIFICATE Shipping04   
    REMOVE PRIVATE KEY;  
GO  

B. Özel anahtarı şifrelemek için kullanılan parolayı değiştirme

ALTER CERTIFICATE Shipping11   
    WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hkjdskghFDGGG4%',  
    ENCRYPTION BY PASSWORD = '34958tosdgfkh##38');  
GO  

C. Veritabanında zaten var olan bir sertifika için özel anahtarı içeri aktarma

ALTER CERTIFICATE Shipping13   
    WITH PRIVATE KEY (FILE = 'c:\importedkeys\Shipping13',  
    DECRYPTION BY PASSWORD = 'GDFLKl8^^GGG4000%');  
GO  

D. Özel anahtarın korumasını paroladan veritabanı ana anahtarına değiştirme

ALTER CERTIFICATE Shipping15   
    WITH PRIVATE KEY (DECRYPTION BY PASSWORD = '95hk000eEnvjkjy#F%');  
GO