Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-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)