Udostępnij za pośrednictwem


KEY_NAME (Transact-SQL)

Zwraca nazwę klucz symetrycznego z albo tekst identyfikatora GUID lub szyfrowania symetrycznego klucz .

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

KEY_NAME ( ciphertext | key_guid ) 

Argumenty

  • ciphertext
    Tekst jest zaszyfrowany przez kluczsymetryczny.cyphertextis type varbinary(8000).

  • key_guid
    Jest identyfikatorem GUID kluczsymetryczny.key_guidis type uniqueidentifier.

Zwracane typy

varchar(128)

Uprawnienia

Począwszy od SQL Server 2005, widoczność metadane jest ograniczony do securables, że albo użytkownik jest właścicielem lub na który została przyznana przez użytkownika niektóre uprawnienia.Aby uzyskać więcej informacji, zobacz Konfiguracja widoczność metadanych.

Przykłady

A.Wyświetlanie nazwy symetrycznego klucz przy użyciu key_guid

Wzorca baza danych zawiera symetryczny klucz o nazwie ##MS_ServiceMasterKey##.Poniższy przykład pobiera identyfikator GUID klucz z sys.symmetric_keys dynamiczny widok zarządzaniaprzypisuje go do zmiennej i przekazuje tej zmiennej KEY_NAME funkcja do demonstrowania sposobu zwraca nazwę, która odpowiada identyfikator 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 symetrycznego klucz szyfrowania tekstu

Poniższy przykład ilustruje cały proces tworzenia klucz symetrycznego i wypełniania danych do tabela.W przykładzie pokazano, jak KEY_NAME zwraca nazwę klucz , gdy przekazywane tekst zaszyfrowany.

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