KEY_NAME (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance
Retourne le nom de la clé symétrique à partir d'un GUID de clé symétrique ou d'un texte chiffré.
Conventions de la syntaxe Transact-SQL
Syntaxe
KEY_NAME ( ciphertext | key_guid )
Arguments
ciphertext
Texte chiffré par la clé symétrique. cyphertext est de type varbinary(8000).
key_guid
GUID de la clé symétrique. key_guid est de type uniqueidentifier.
Types retournés
varchar(128)
Autorisations
À compter de la version SQL Server 2005 (9.x), les métadonnées ne sont visibles que pour les éléments sécurisables qu’un utilisateur détient ou pour lesquels des autorisations lui ont été accordées. Pour plus d'informations, consultez Metadata Visibility Configuration.
Exemples
R. Affichage du nom d'une clé symétrique à l'aide de key_guid
La base de données master contient une clé symétrique nommée ##MS_ServiceMasterKey##. L'exemple suivant obtient le GUID de cette clé à partir de la vue de gestion dynamique sys.symmetric_keys, l'assigne à une variable, puis passe cette variable à la fonction KEY_NAME pour montrer comment retourner le nom correspondant au 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. Affichage du nom d'une clé symétrique à l'aide du texte chiffré
L'exemple suivant décrit l'intégralité du processus de création d'une clé symétrique et de remplissage d'une table. Il montre ensuite comment la fonction KEY_NAME retourne le nom de la clé après avoir reçu le texte chiffré.
-- 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] ;
Voir aussi
sys.symmetric_keys (Transact-SQL)
ENCRYPTBYKEY (Transact-SQL)
DECRYPTBYKEYAUTOASYMKEY (Transact-SQL)