Udostępnij za pomocą


KEY_NAME (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Zwraca nazwę klucza symetrycznego z GUID klucza symetrycznego lub tekstu szyfrującego.

Transact-SQL konwencje składni

Składnia

KEY_NAME ( ciphertext | key_guid )   

Arguments

szyfrogram
Jest tekstem zaszyfrowanym przez klucz symetryczny. Tekst szyfrowy to typ varbinary(8000).

key_guid
Jest GUID klucza symetrycznego. key_guid to typ uniqueidentifier.

Typy zwrócone

varchar(128)

Permissions

Począwszy od SQL Server 2005 (9.x), widoczność metadanych ogranicza się do zabezpieczalnych elementów, które użytkownik posiada lub na które otrzymał pewne uprawnienia. Aby uzyskać więcej informacji, zobacz Konfiguracja widoczności metadanych.

Przykłady

A. Wyświetlanie nazwy klucza symetrycznego za pomocą key_guid

Główna baza danych zawiera symetryczny klucz o nazwie ##MS_ServiceMasterKey##. Poniższy przykład pobiera GUID tego klucza z widoku zarządzania dynamicznego sys.symmetric_keys, przypisuje go do zmiennej, a następnie przekazuje tę zmienną funkcji KEY_NAME, aby pokazać, jak zwrócić nazwę odpowiadającą 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. Wyświetlanie nazwy klucza symetrycznego za pomocą tekstu szyfrującego

Poniższy przykład pokazuje cały proces tworzenia klucza symetrycznego i zapełniania danych do tabeli. Przykład pokazuje też, jak KEY_NAME zwraca nazwę klucza po przekazaniu zaszyfrowanego tekstu.

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

Zobacz też

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