Delen via


ALTER CERTIFICATE (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAnalytics Platform System (PDW)SQL-database in Microsoft Fabric Preview

Hiermee wijzigt u het wachtwoord dat wordt gebruikt om de persoonlijke sleutel van een certificaat te versleutelen, verwijdert u de persoonlijke sleutel of importeert u de persoonlijke sleutel als er geen aanwezig is. Hiermee wijzigt u de beschikbaarheid van een certificaat in Service Broker.

Transact-SQL syntaxis-conventies

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
Is de unieke naam waarmee het certificaat bekend is in de database.

PERSOONLIJKE SLEUTEL VERWIJDEREN
Hiermee geeft u op dat de persoonlijke sleutel niet meer in de database mag worden onderhouden.

MET PERSOONLIJKE SLEUTEL geeft u op dat de persoonlijke sleutel van het certificaat wordt geladen in SQL Server.

FILE ='path_to_private_key'
Hiermee geeft u het volledige pad, inclusief bestandsnaam, op de persoonlijke sleutel. Deze parameter kan een lokaal pad of een UNC-pad naar een netwerklocatie zijn. Dit bestand wordt geopend in de beveiligingscontext van het SQL Server-serviceaccount. Wanneer u deze optie gebruikt, moet u ervoor zorgen dat het serviceaccount toegang heeft tot het opgegeven bestand.

Als er alleen een bestandsnaam is opgegeven, wordt het bestand opgeslagen in de standaardmap met gebruikersgegevens voor het exemplaar. Deze map is mogelijk (of niet) de map SQL Server DATA. Voor SQL Server Express LocalDB is de standaardmap met gebruikersgegevens voor het exemplaar het pad dat is opgegeven door de %USERPROFILE% omgevingsvariabele voor het account dat het exemplaar heeft gemaakt.

BINARY ='private_key_bits'
Van toepassing op: SQL Server 2012 (11.x) en hoger.

Privésleutel-bits die zijn opgegeven als binaire constante. Deze bits kunnen in versleutelde vorm worden gebruikt. Indien versleuteld, moet de gebruiker een ontsleutelingswachtwoord opgeven. Er worden geen controles voor wachtwoordbeleid uitgevoerd op dit wachtwoord. De privésleutel-bits moeten een PVK-bestandsindeling hebben.

ONTSLEUTELING PER WACHTWOORD ='current_password'
Hiermee geeft u het wachtwoord op dat is vereist voor het ontsleutelen van de persoonlijke sleutel.

VERSLEUTELING OP WACHTWOORD ='new_password'
Hiermee geeft u het wachtwoord op dat wordt gebruikt voor het versleutelen van de persoonlijke sleutel van het certificaat in de database. new_password moet voldoen aan de windows-wachtwoordbeleidsvereisten van de computer waarop het exemplaar van SQL Server wordt uitgevoerd. Zie Wachtwoordbeleidvoor meer informatie.

ACTIEF VOOR BEGIN_DIALOG = { AAN | UIT }
Het certificaat beschikbaar maken voor de initiator van een Service Broker-dialoogvenster.

Remarks

De persoonlijke sleutel moet overeenkomen met de openbare sleutel die is opgegeven door certificate_name.

De COMPONENT DECRYPTION BY PASSWORD kan worden weggelaten als het wachtwoord in het bestand is beveiligd met een null-wachtwoord.

Wanneer de persoonlijke sleutel van een certificaat dat al bestaat in de database wordt geïmporteerd, wordt de persoonlijke sleutel automatisch beveiligd door de hoofdsleutel van de database. Gebruik de component ENCRYPTION BY PASSWORD om de persoonlijke sleutel met een wachtwoord te beveiligen.

Met de optie PERSOONLIJKE SLEUTEL VERWIJDEREN wordt de persoonlijke sleutel van het certificaat uit de database verwijderd. U kunt de persoonlijke sleutel verwijderen wanneer het certificaat wordt gebruikt om handtekeningen te verifiëren of in Service Broker-scenario's waarvoor geen persoonlijke sleutel is vereist. Verwijder de persoonlijke sleutel van een certificaat dat een symmetrische sleutel beveiligt niet. De persoonlijke sleutel moet worden hersteld om aanvullende modules of tekenreeksen te ondertekenen die moeten worden geverifieerd met het certificaat of om een waarde te ontsleutelen die is versleuteld met het certificaat.

U hoeft geen ontsleutelingswachtwoord op te geven wanneer de persoonlijke sleutel wordt versleuteld met behulp van de hoofdsleutel van de database.

Als u het wachtwoord wilt wijzigen dat wordt gebruikt voor het versleutelen van de persoonlijke sleutel, geeft u niet de BESTANDS- of BINARY-componenten op.

Important

Maak altijd een archiveringskopie van een persoonlijke sleutel voordat u deze uit een database verwijdert. Zie BACKUP CERTIFICATE (Transact-SQL) en CERTPRIVATEKEY (Transact-SQL) voor meer informatie.

De optie WITH PRIVATE KEY is niet beschikbaar in een ingesloten database.

Permissions

Vereist ALTER-machtiging voor het certificaat.

Examples

A. De persoonlijke sleutel van een certificaat verwijderen

ALTER CERTIFICATE Shipping04   
    REMOVE PRIVATE KEY;  
GO  

B. Het wachtwoord wijzigen dat wordt gebruikt om de persoonlijke sleutel te versleutelen

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

C. Een persoonlijke sleutel importeren voor een certificaat dat al aanwezig is in de database

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

D. De beveiliging van de persoonlijke sleutel wijzigen van een wachtwoord in de hoofdsleutel van de database

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

See Also

CERTIFICAAT MAKEN (Transact-SQL)
DROP CERTIFICATE (Transact-SQL)
BACK-UPCERTIFICAAT (Transact-SQL)
Encryption Hierarchy
EVENTDATA (Transact-SQL)
CERTENCODED (Transact-SQL)
CERTPRIVATEKEY (Transact-SQL)
CERT_ID (Transact-SQL)
CERTPROPERTY (Transact-SQL)