KEY_NAME (Transact-SQL)KEY_NAME (Transact-SQL)

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2008)sìDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Restituisce il nome della chiave simmetrica dal GUID di una chiave simmetrica o da un testo crittografato.Returns the name of the symmetric key from either a symmetric key GUID or cipher text.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQLTopic link icon Transact-SQL Syntax Conventions

SintassiSyntax


KEY_NAME ( ciphertext | key_guid )   

ArgomentiArguments

ciphertextciphertext
Testo crittografato dalla chiave simmetrica.Is the text encrypted by the symmetric key. cyphertext è di tipo varbinary(8000).cyphertext is type varbinary(8000).

key_guidkey_guid
GUID della chiave simmetrica.Is the GUID of the symmetric key. key_guid è di tipo uniqueidentifier.key_guid is type uniqueidentifier.

Tipi restituitiReturned Types

varchar(128)varchar(128)

AutorizzazioniPermissions

A partire da SQL Server 2005SQL Server 2005 la visibilità dei metadati è limitata alle entità a sicurezza diretta di cui l'utente è proprietario o per le quali dispone di autorizzazioni.Beginning in SQL Server 2005SQL Server 2005, the visibility of metadata is limited to securables that a user either owns or on which the user has been granted some permission. Per altre informazioni, vedere Metadata Visibility Configuration.For more information, see Metadata Visibility Configuration.

EsempiExamples

A.A. Visualizzazione del nome di una chiave simmetrica mediante key_guidDisplaying the name of a symmetric key using the key_guid

Il database master contiene una chiave simmetrica denominata ##MS_ServiceMasterKey##.The master database contains a symmetric key named ##MS_ServiceMasterKey##. Nell'esempio seguente il GUID di tale chiave viene recuperato dalla vista a gestione dinamica sys.symmetric_keys e viene assegnato a una variabile che viene quindi passata alla funzione KEY_NAME per illustrare come restituire il nome corrispondente al GUID.The following example gets the GUID of that key from the sys.symmetric_keys dynamic management view, assigns it to a variable, and then passes that variable to the KEY_NAME function to demonstrate how to return the name that corresponds to the GUID.

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.B. Visualizzazione del nome di una chiave simmetrica mediante il testo crittografatoDisplaying the name of a symmetric key using the cipher text

Nell'esempio seguente viene illustrato l'intero processo di creazione di una chiave simmetrica e popolamento di una tabella con i dati.The following example demonstrates the entire process of creating a symmetric key and populating data into a table. Nell'esempio viene quindi mostrata la restituzione del nome della chiave da KEY_NAME quando viene passato il testo crittografato.The example then shows how KEY_NAME returns the name of the key when passed the encrypted text.

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

Vedere ancheSee Also

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