Udostępnij za pomocą


CERTYFIKAT ALTERA (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAnalytics Platform System (PDW)Baza danych SQL w usłudze Microsoft Fabric

Zmienia hasło używane do szyfrowania klucza prywatnego certyfikatu, usuwa klucz prywatny lub importuje klucz prywatny, jeśli żaden z nich nie istnieje. Zmienia dostępność certyfikatu na Service Broker.

Transact-SQL konwencje składni

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
Jest unikatową nazwą, za pomocą której certyfikat jest znany w bazie danych.

USUŃ KLUCZ PRYWATNY
Określa, że klucz prywatny nie powinien być już utrzymywany wewnątrz bazy danych.

WITH PRIVATE KEY Określa, że klucz prywatny certyfikatu jest ładowany do programu SQL Server.

PLIK ='path_to_private_key'
Określa pełną ścieżkę, w tym nazwę pliku, do klucza prywatnego. Ten parametr może być ścieżką lokalną lub ścieżką UNC do lokalizacji sieciowej. Dostęp do tego pliku będzie uzyskiwany w kontekście zabezpieczeń konta usługi programu SQL Server. Jeśli używasz tej opcji, upewnij się, że konto usługi ma dostęp do określonego pliku.

Jeśli zostanie określona tylko nazwa pliku, plik zostanie zapisany w domyślnym folderze danych użytkownika dla wystąpienia. Ten folder może (lub nie) być folderem DANYCH programu SQL Server. W przypadku usługi SQL Server Express LocalDB domyślny folder danych użytkownika dla wystąpienia to ścieżka określona przez %USERPROFILE% zmienną środowiskową dla konta, które utworzyło wystąpienie.

BINARNY ='private_key_bits'
Dotyczy: SQL Server 2012 (11.x) i nowsze.

Bity klucza prywatnego określone jako stała binarna. Te bity mogą być w postaci zaszyfrowanej. W przypadku szyfrowania użytkownik musi podać hasło odszyfrowywania. Kontrole zasad haseł nie są wykonywane na tym haśle. Bity klucza prywatnego powinny być w formacie pliku PVK.

ODSZYFROWYWANIE WEDŁUG HASŁA ='current_password'
Określa hasło wymagane do odszyfrowania klucza prywatnego.

SZYFROWANIE WEDŁUG HASŁA ='new_password'
Określa hasło używane do szyfrowania klucza prywatnego certyfikatu w bazie danych. new_password musi spełniać wymagania zasad haseł systemu Windows komputera z uruchomionym wystąpieniem programu SQL Server. Aby uzyskać więcej informacji, zobacz politykę haseł.

AKTYWNE DLA BEGIN_DIALOG = { ON | WYŁ. }
Udostępnia certyfikat inicjatorowi konwersacji dialogowej usługi Service Broker.

Remarks

Klucz prywatny musi odpowiadać kluczowi publicznemu określonemu przez certificate_name.

Klauzula DECRYPTION BY PASSWORD może zostać pominięta, jeśli hasło w pliku jest chronione hasłem o wartości null.

Po zaimportowaniu klucza prywatnego certyfikatu, który już istnieje w bazie danych, klucz prywatny będzie automatycznie chroniony przez klucz główny bazy danych. Aby chronić klucz prywatny przy użyciu hasła, użyj klauzuli ENCRYPTION BY PASSWORD.

Opcja USUŃ KLUCZ PRYWATNY spowoduje usunięcie klucza prywatnego certyfikatu z bazy danych. Klucz prywatny można usunąć, gdy certyfikat będzie używany do weryfikowania podpisów lub w scenariuszach usługi Service Broker, które nie wymagają klucza prywatnego. Nie usuwaj klucza prywatnego certyfikatu, który chroni klucz symetryczny. Klucz prywatny należy przywrócić, aby podpisać wszelkie dodatkowe moduły lub ciągi, które powinny zostać zweryfikowane przy użyciu certyfikatu, lub odszyfrować wartość zaszyfrowaną przy użyciu certyfikatu.

Nie trzeba określać hasła odszyfrowywania, gdy klucz prywatny jest szyfrowany przy użyciu klucza głównego bazy danych.

Aby zmienić hasło używane do szyfrowania klucza prywatnego, nie należy określać klauzul FILE lub BINARY.

Important

Przed usunięciem go z bazy danych zawsze należy utworzyć kopię archiwalną klucza prywatnego. Aby uzyskać więcej informacji, zobacz BACKUP CERTIFICATE (Transact-SQL) i CERTPRIVATEKEY (Transact-SQL).

Opcja WITH PRIVATE KEY nie jest dostępna w zawartej bazie danych.

Permissions

Wymaga uprawnienia ALTER dla certyfikatu.

Examples

A. Usuwanie klucza prywatnego certyfikatu

ALTER CERTIFICATE Shipping04   
    REMOVE PRIVATE KEY;  
GO  

B. Zmiana hasła używanego do szyfrowania klucza prywatnego

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

C. Importowanie klucza prywatnego dla certyfikatu, który jest już obecny w bazie danych

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

D. Zmiana ochrony klucza prywatnego z hasła na klucz główny bazy danych

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

Zobacz też

UTWÓRZ CERTYFIKAT (Transact-SQL)
CERTYFIKAT DROP (Transact-SQL)
certyfikat kopii zapasowej (Transact-SQL)
Hierarchia szyfrowania
DANE ZDARZEŃ (Transact-SQL)
CERTENCODED (Transact-SQL)
CERTPRIVATEKEY (Transact-SQL)
CERT_ID (Transact-SQL)
CERTPROPERTY (Transact-SQL)