Megosztás a következőn keresztül:


KEY_NAME (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Visszaadja a szimmetrikus kulcs nevét akár egy szimmetrikus kulcs, GUID vagy titkosított szövegből.

Transact-SQL szintaxis konvenciók

Szemantika

KEY_NAME ( ciphertext | key_guid )   

Arguments

ciphertext
A szöveget a szimmetrikus kulcs titkosítja. A titkosított szövega varbinary(8000) típus.

key_guid
A szimmetrikus kulcs GUID-je. key_guid a típus uniqueidentifier.

Visszatérő típusok

varchar(128)

Permissions

Az SQL Server 2005 (9.x) verziótól kezdve a metaadatok láthatósága korlátozódik azokra az értékpapírokra, amelyeket a felhasználó birtokol, vagy amelyekre valamilyen engedélyt kapott. További információ: Metaadatok láthatóságának konfigurációja.

Példák

A. Egy szimmetrikus kulcs nevének megjelenítése a key_guid

A fő adatbázis tartalmaz egy szimmetrikus kulcsot ##MS_ServiceMasterKey## néven. A következő példa megkapja az adott kulcs GUID-jét a sys.symmetric_keys dinamikus menedzsment nézetből, egy változóhoz rendeli, majd átadja azt a változót a KEY_NAME függvénynek, hogy bemutassa, hogyan lehet visszaadni a GUID-nek megfelelő nevet.

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. Szimmetrikus kulcs nevének megjelenítése a titkosított szöveg segítségével

A következő példa bemutatja az egész folyamatot egy szimmetrikus kulcs létrehozásának és az adatok táblázatba való feltöltésének folyamatában. A példa aztán megmutatja, hogyan adja vissza KEY_NAME a kulcs nevét, amikor átadják a titkosított szöveget.

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

Lásd még:

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