Dela via


ALTER CERTIFICATE (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAnalysplattformssystem (PDW)SQL-databas i Förhandsversion av Microsoft Fabric

Ändrar lösenordet som används för att kryptera den privata nyckeln för ett certifikat, tar bort den privata nyckeln eller importerar den privata nyckeln om ingen finns. Ändrar tillgängligheten för ett certifikat till Service Broker.

Transact-SQL syntaxkonventioner

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
Är det unika namn med vilket certifikatet är känt i databasen.

TA BORT PRIVAT NYCKEL
Anger att den privata nyckeln inte längre ska underhållas i databasen.

MED PRIVAT NYCKEL Anger att certifikatets privata nyckel läses in i SQL Server.

FILE ='path_to_private_key'
Anger den fullständiga sökvägen, inklusive filnamn, till den privata nyckeln. Den här parametern kan vara en lokal sökväg eller en UNC-sökväg till en nätverksplats. Den här filen kommer att nås inom säkerhetskontexten för SQL Server-tjänstkontot. När du använder det här alternativet kontrollerar du att tjänstkontot har åtkomst till den angivna filen.

Om endast ett filnamn anges sparas filen i standardmappen för användardata för instansen. Den här mappen kan (eller kanske inte) vara SQL Server DATA-mappen. För SQL Server Express LocalDB är standardmappen för användardata för instansen den sökväg som anges av %USERPROFILE% miljövariabeln för det konto som skapade instansen.

BINARY ='private_key_bits'
gäller för: SQL Server 2012 (11.x) och senare.

Privata nyckelbitar som anges som binär konstant. Dessa bitar kan vara i krypterad form. Om den är krypterad måste användaren ange ett dekrypteringslösenord. Lösenordsprincipkontroller utförs inte på det här lösenordet. De privata nyckelbitarna ska vara i ett PVK-filformat.

DEKRYPTERING EFTER LÖSENORD ='current_password'
Anger det lösenord som krävs för att dekryptera den privata nyckeln.

KRYPTERING EFTER LÖSENORD ='new_password'
Anger lösenordet som används för att kryptera certifikatets privata nyckel i databasen. new_password måste uppfylla kraven på Windows-lösenordsprinciper för den dator som kör SQL Server-instansen. Mer information finns i lösenordsprincip.

AKTIV FÖR BEGIN_DIALOG = { ON | AV }
Gör certifikatet tillgängligt för initieraren av en dialogkonversation för Service Broker.

Remarks

Den privata nyckeln måste motsvara den offentliga nyckel som anges av certificate_name.

Satsen DECRYPTION BY PASSWORD kan utelämnas om lösenordet i filen skyddas med ett null-lösenord.

När den privata nyckeln för ett certifikat som redan finns i databasen importeras skyddas den privata nyckeln automatiskt av databashuvudnyckeln. Om du vill skydda den privata nyckeln med ett lösenord använder du satsen KRYPTERING EFTER LÖSENORD.

Alternativet TA BORT PRIVAT NYCKEL tar bort certifikatets privata nyckel från databasen. Du kan ta bort den privata nyckeln när certifikatet ska användas för att verifiera signaturer eller i Service Broker-scenarier som inte kräver en privat nyckel. Ta inte bort den privata nyckeln för ett certifikat som skyddar en symmetrisk nyckel. Den privata nyckeln måste återställas för att signera ytterligare moduler eller strängar som ska verifieras med certifikatet, eller för att dekryptera ett värde som har krypterats med certifikatet.

Du behöver inte ange ett dekrypteringslösenord när den privata nyckeln krypteras med hjälp av databasens huvudnyckel.

Om du vill ändra lösenordet som används för att kryptera den privata nyckeln ska du inte ange satserna FILE eller BINARY.

Important

Skapa alltid en arkiveringskopia av en privat nyckel innan du tar bort den från en databas. Mer information finns i SÄKERHETSKOPIERINGSCERTIFIKAT (Transact-SQL) och CERTPRIVATEKEY (Transact-SQL).

ALTERNATIVET MED PRIVAT NYCKEL är inte tillgängligt i en innesluten databas.

Permissions

Kräver ALTER-behörighet för certifikatet.

Examples

A. Ta bort den privata nyckeln för ett certifikat

ALTER CERTIFICATE Shipping04   
    REMOVE PRIVATE KEY;  
GO  

B. Ändra lösenordet som används för att kryptera den privata nyckeln

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

C. Importera en privat nyckel för ett certifikat som redan finns i databasen

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

D. Ändra skyddet för den privata nyckeln från ett lösenord till databasens huvudnyckel

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

See Also

SKAPA CERTIFIKAT (Transact-SQL)
SLÄPP CERTIFIKAT (Transact-SQL)
SÄKERHETSKOPIERINGSCERTIFIKAT (Transact-SQL)
Encryption Hierarchy
EVENTDATA (Transact-SQL)
CERTENCODED (Transact-SQL)
CERTPRIVATEKEY (Transact-SQL)
CERT_ID (Transact-SQL)
CERTPROPERTY (Transact-SQL)