KEY_NAME (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

Returnerar namnet på den symmetriska nyckeln från antingen en symmetrisk nyckel-GUID eller chiffertext.

Transact-SQL syntaxkonventioner

Syntax

KEY_NAME ( ciphertext | key_guid )   

Arguments

chiffertext
Är texten krypterad med den symmetriska nyckeln. Cyfertext är typen varbinär(8000).

key_guid
Är GUID för den symmetriska nyckeln. key_guid är typens unika identifierare.

Returnerade typer

varchar(128)

Permissions

Från och med SQL Server 2005 (9.x) är insynen av metadata begränsad till säkerhetsfiler som en användare antingen äger eller har beviljats viss behörighet på. För mer information, se inställningar för metadatasynlighet.

Examples

A. Att visa namnet på en symmetrisk nyckel med hjälp av key_guid

Huvuddatabasen innehåller en symmetrisk nyckel som heter ##MS_ServiceMasterKey##. Följande exempel hämtar GUID:n för den nyckeln från den sys.symmetric_keys dynamiska hanteringsvyn, tilldelar den en variabel och skickar sedan den variabeln till KEY_NAME-funktionen för att visa hur man returnerar namnet som motsvarar GUID:en.

USE master;  
GO  
DECLARE @guid uniqueidentifier ;  
SELECT @guid = key_guid FROM sys.symmetric_keys  
WHERE name = '##MS_ServiceMasterKey##' ;  
-- Demonstration of passing a GUID to KEY_NAME to receive a name  
SELECT KEY_NAME(@guid) AS [Name of Key];  

B. Att visa namnet på en symmetrisk nyckel med hjälp av chiffertexten

Följande exempel visar hela processen att skapa en symmetrisk nyckel och fylla i data i en tabell. Exemplet visar sedan hur KEY_NAME returnerar nyckelns namn när den krypterade texten skickas vidare.

-- Create a symmetric key  
CREATE SYMMETRIC KEY TestSymKey   
   WITH ALGORITHM = AES_128,  
   KEY_SOURCE = 'The square of the hypotenuse is equal to the sum of the squares of the sides',  
   IDENTITY_VALUE = 'Pythagoras'  
   ENCRYPTION BY PASSWORD = 'pGFD4bb925DGvbd2439587y' ;  
GO  
-- Create a table for the demonstration  
CREATE TABLE DemoKey  
(IDCol INT IDENTITY PRIMARY KEY,  
SecretCol VARBINARY(256) NOT NULL)  
GO  
-- Open the symmetric key if not already open  
OPEN SYMMETRIC KEY TestSymKey   
    DECRYPTION BY PASSWORD = 'pGFD4bb925DGvbd2439587y';  
GO  
-- Insert a row into the DemoKey table  
DECLARE @key_GUID uniqueidentifier;  
SELECT @key_GUID = key_guid FROM sys.symmetric_keys  
WHERE name LIKE 'TestSymKey' ;  
INSERT INTO DemoKey(SecretCol)  
VALUES ( ENCRYPTBYKEY (@key_GUID, 'EncryptedText'))  
GO  
-- Verify the DemoKey data  
SELECT * FROM DemoKey;  
GO  
-- Decrypt the data  
DECLARE @ciphertext VARBINARY(256);  
SELECT @ciphertext = SecretCol  
FROM DemoKey WHERE IDCol = 1 ;  
SELECT CAST (  
DECRYPTBYKEY( @ciphertext)  
AS VARCHAR(100) ) AS SecretText ;  
-- Use KEY_NAME to view the name of the key  
SELECT KEY_NAME(@ciphertext) AS [Name of Key] ;  

Se även

sys.symmetric_keys (Transact-SQL)
ENCRYPTBYKEY (Transact-SQL)
DECRYPTBYKEYAUTOASYMKEY (Transact-SQL)