KEY_NAME (Transact-SQL)
Zwraca nazwę klucz zawartości z tekstu klucz zawartości identyfikator GUID lub szyfrowania.
KEY_NAME ( ciphertext | key_guid )
Argumenty
ciphertext
Is the text encrypted by the symmetric key.cyphertext is type varbinary(8000).key_guid
Is the GUID of the symmetric key.key_guid is type uniqueidentifier.
Zwracane typy
varchar(128)
Uprawnienia
Począwszy od SQL Server 2005, widoczność metadane jest ograniczona do securables, do którego należy albo użytkownik lub w którym użytkownik ma udzielonego uprawnienia niektóre. Aby uzyskać więcej informacji zobaczKonfiguracja widoczność metadane.
Przykłady
A.Wyświetlanie nazwy klucz zawartości przy użyciu key_guid
The master database contains a klucz zawartości named ##MS_ServiceMasterKey##.W poniższym przykładzie identyfikatora GUID z tego klucz są pobierane z widoku sys.symmetric_keys dynamicznego zarządzania, przypisuje go do zmiennej, a następnie przekazuje tej zmiennej do funkcja KEY_NAME wykazać, jak zwrócić 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];
PASSWORD = 'decryption_password'
B.Wyświetlanie nazwy klucz zawartości przy użyciu szyfrowania tekstu
W poniższym przykładzie zademonstrowano cały proces tworzenia klucz symetrycznego i wypełnianie danych w tabela.Następnie, w przykładzie pokazano, jak KEY_NAME zwraca nazwę klucz, gdy dane są przekazywane na 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] ;