Dela via


ÄNDRA SYMMETRISK NYCKEL (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL-databas i Microsoft Fabric

Ändrar egenskaperna för en symmetrisk nyckel.

Transact-SQL syntaxkonventioner

Anmärkning

Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.

Syntax

ALTER SYMMETRIC KEY Key_name <alter_option>  
  
<alter_option> ::=  
   ADD ENCRYPTION BY <encrypting_mechanism> [ , ... n ]  
   |   
   DROP ENCRYPTION BY <encrypting_mechanism> [ , ... n ]  
<encrypting_mechanism> ::=  
   CERTIFICATE certificate_name  
   |  
   PASSWORD = 'password'  
   |  
   SYMMETRIC KEY Symmetric_Key_Name  
   |  
   ASYMMETRIC KEY Asym_Key_Name  

Argumentpunkter

Key_name
Är namnet som den symmetriska nyckeln som ska ändras är känt i databasen.

LÄGG TILL KRYPTERING EFTER
Lägger till kryptering med den angivna metoden.

SLÄPP KRYPTERING EFTER
Släpper kryptering med den angivna metoden. Du kan inte ta bort alla krypteringar från en symmetrisk nyckel.

CERTIFIKAT Certificate_name
Anger det certifikat som används för att kryptera den symmetriska nyckeln. Certifikatet måste redan finnas i databasen.

LÖSENORD ='lösenord'
Anger lösenordet som används för att kryptera den symmetriska nyckeln. lösenordet måste uppfylla kraven för Windows-lösenordsprinciper för den dator som kör instansen av SQL Server.

SYMMETRISK NYCKEL Symmetric_Key_Name
Anger den symmetriska nyckel som används för att kryptera den symmetriska nyckel som ändras. Den här symmetriska nyckeln måste redan finnas i databasen och måste vara öppen.

ASYMMETRISK NYCKEL Asym_Key_Name
Anger den asymmetriska nyckel som används för att kryptera den symmetriska nyckel som ändras. Den här asymmetriska nyckeln måste redan finnas i databasen.

Anmärkningar

Försiktighet

När en symmetrisk nyckel krypteras med ett lösenord i stället för med den offentliga nyckeln för databashuvudnyckeln används TRIPLE_DES krypteringsalgoritmen. Därför skyddas nycklar som skapas med en stark krypteringsalgoritm, till exempel AES, av en svagare algoritm.

Om du vill ändra krypteringen för den symmetriska nyckeln använder du fraserna LÄGG TILL KRYPTERING och SLÄPP KRYPTERING. Det är aldrig möjligt för en nyckel att vara helt utan kryptering. Därför är bästa praxis att lägga till den nya krypteringsformen innan du tar bort den gamla krypteringsformen.

För att skydda nyckelmaterialet för den symmetriska nyckeln lagrar SQL Server och Azure SQL nyckelmaterialet i krypterad form. Tidigare använde den här krypteringen PKCS#1 v1.5 utfyllnadsläge; Från och med databaskompatibilitetsnivå 170 använder krypteringen utfyllnadsläget OAEP-256 för kryptering efter certifikat eller asymmetrisk nyckel.

Om du vill ändra ägaren till en symmetrisk nyckel använder du ALTER AUTHORIZATION.

Anmärkning

RC4-algoritmen stöds endast för bakåtkompatibilitet. Nytt material kan bara krypteras med hjälp av RC4 eller RC4_128 när databasen är på kompatibilitetsnivå 90 eller 100. (Rekommenderas inte.) Använd en nyare algoritm, till exempel en av AES-algoritmerna i stället. I SQL Server 2012 (11.x) kan material som krypterats med RC4 eller RC4_128 dekrypteras på valfri kompatibilitetsnivå.

Behörigheter

Kräver ALTER-behörighet för den symmetriska nyckeln. Om du lägger till kryptering med ett certifikat eller en asymmetrisk nyckel måste du ha behörigheten VIEW DEFINITION på certifikatet eller asymmetrisk nyckel. Om du släpper kryptering med ett certifikat eller en asymmetrisk nyckel kräver du KONTROLL-behörighet för certifikatet eller asymmetrisk nyckel.

Exempel

I följande exempel ändras krypteringsmetoden som används för att skydda en symmetrisk nyckel. Den symmetriska nyckeln JanainaKey043 krypteras med hjälp av certifikatet Shipping04 när nyckeln skapades. Eftersom nyckeln aldrig kan lagras okrypterad läggs kryptering i det här exemplet till med lösenord och sedan tas krypteringen bort av certifikatet.

CREATE SYMMETRIC KEY JanainaKey043 WITH ALGORITHM = AES_256   
    ENCRYPTION BY CERTIFICATE Shipping04;  
-- Open the key.   
OPEN SYMMETRIC KEY JanainaKey043 DECRYPTION BY CERTIFICATE Shipping04  
    WITH PASSWORD = '<enterStrongPasswordHere>';   
-- First, encrypt the key with a password.  
ALTER SYMMETRIC KEY JanainaKey043   
    ADD ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>';  
-- Now remove encryption by the certificate.  
ALTER SYMMETRIC KEY JanainaKey043   
    DROP ENCRYPTION BY CERTIFICATE Shipping04;  
CLOSE SYMMETRIC KEY JanainaKey043;  

Se även

SKAPA SYMMETRISK NYCKEL (Transact-SQL)
Öppen symmetrisk nyckel (Transact-SQL)
STÄNG SYMMETRISK NYCKEL (Transact-SQL)
SLÄPP SYMMETRISK NYCKEL (Transact-SQL)
Krypteringshierarki