Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Returnerar namnet på den symmetriska nyckeln från antingen en symmetrisk nyckel-GUID eller chiffertext.
Transact-SQL syntaxkonventioner
Syntax
KEY_NAME ( ciphertext | key_guid )
Arguments
chiffertext
Är texten krypterad med den symmetriska nyckeln.
Cyfertext är typen varbinär(8000).
key_guid
Är GUID för den symmetriska nyckeln.
key_guid är typens unika identifierare.
Returnerade typer
varchar(128)
Permissions
Från och med SQL Server 2005 (9.x) är insynen av metadata begränsad till säkerhetsfiler som en användare antingen äger eller har beviljats viss behörighet på. För mer information, se inställningar för metadatasynlighet.
Examples
A. Att visa namnet på en symmetrisk nyckel med hjälp av key_guid
Huvuddatabasen innehåller en symmetrisk nyckel som heter ##MS_ServiceMasterKey##. Följande exempel hämtar GUID:n för den nyckeln från den sys.symmetric_keys dynamiska hanteringsvyn, tilldelar den en variabel och skickar sedan den variabeln till KEY_NAME-funktionen för att visa hur man returnerar namnet som motsvarar GUID:en.
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. Att visa namnet på en symmetrisk nyckel med hjälp av chiffertexten
Följande exempel visar hela processen att skapa en symmetrisk nyckel och fylla i data i en tabell. Exemplet visar sedan hur KEY_NAME returnerar nyckelns namn när den krypterade texten skickas vidare.
-- 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] ;
Se även
sys.symmetric_keys (Transact-SQL)
ENCRYPTBYKEY (Transact-SQL)
DECRYPTBYKEYAUTOASYMKEY (Transact-SQL)