Delen via


KEY_NAME (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

Geeft de naam van de symmetrische sleutel terug uit zowel een symmetrische sleutel-GUID als een cijfertekst.

Transact-SQL syntaxis-conventies

Syntaxis

KEY_NAME ( ciphertext | key_guid )   

Arguments

coderingstekst
Is de tekst versleuteld door de symmetrische sleutel. Cyphertext is type varbinary(8000).

key_guid
Is de GUID van de symmetrische sleutel. key_guid is type uniqueidentifier.

Teruggegeven types

varchar(128)

Permissions

Vanaf SQL Server 2005 (9.x) is de zichtbaarheid van metadata beperkt tot securables die een gebruiker bezit of waarop de gebruiker enige toestemming heeft gekregen. Zie Zichtbaarheidsconfiguratie voor metagegevensvoor meer informatie.

Voorbeelden

Eén. Het weergeven van de naam van een symmetrische sleutel met behulp van de key_guid

De masterdatabase bevat een symmetrische sleutel genaamd ##MS_ServiceMasterKey##. Het volgende voorbeeld haalt de GUID van die sleutel uit de dynamische beheerweergave van de sys.symmetric_keys, wijst deze toe aan een variabele en geeft die variabele vervolgens door aan de KEY_NAME functie om te demonstreren hoe de naam die overeenkomt met de GUID kan worden teruggegeven.

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. Het weergeven van de naam van een symmetrische sleutel met behulp van de cijfertekst

Het volgende voorbeeld toont het hele proces van het creëren van een symmetrische sleutel en het invullen van data in een tabel. Het voorbeeld laat vervolgens zien hoe KEY_NAME de naam van de sleutel teruggeeft wanneer de versleutelde tekst wordt doorgegeven.

-- 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] ;  

Zie ook

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