KEY_NAME (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz
Gibt den Namen des symmetrischen Schlüssels entweder aus einer GUID eines symmetrischen Schlüssels oder aus verschlüsseltem Text zurück.
Transact-SQL-Syntaxkonventionen
Syntax
KEY_NAME ( ciphertext | key_guid )
Hinweis
Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 (12.x) und früher finden Sie unter Dokumentation zu früheren Versionen.
Argumente
ciphertext
Der mit dem symmetrischen Schlüssel verschlüsselte Text. cyphertext ist vom Datentyp varbinary(8000).
key_guid
Die GUID des symmetrischen Schlüssels. key_guid ist vom Datentyp uniqueidentifier.
Rückgabetypen
varchar(128)
Berechtigungen
Ab SQL Server 2005 (9.x) ist die Sichtbarkeit von Metadaten auf sicherungsfähige Elemente beschränkt, bei denen der Benutzer entweder der Besitzer ist oder für die dem Benutzer eine Berechtigung zugewiesen wurde. Weitere Informationen finden Sie unter Metadata Visibility Configuration.
Beispiele
A. Anzeigen des Namens eines symmetrischen Schlüssels mit der key_guid
Die master-Datenbank enthält einen symmetrischen Schlüssel mit der Bezeichnung ##MS_ServiceMasterKey##. Das folgende Beispiel ruft die GUID dieses Schlüssels aus der dynamischen Verwaltungssicht sys.symmetric_keys ab, weist sie einer Variablen zu und übergibt dann diese Variable an die KEY_NAME-Funktion, um zu veranschaulichen, wie der Name zurückgegeben wird, der der GUID entspricht.
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. Anzeigen des Namens eines symmetrischen Schlüssels mit verschlüsseltem Text
Im folgenden Beispiel wird der gesamte Prozess des Erstellens eines symmetrischen Schlüssels und des Füllens von Daten in eine Tabelle veranschaulicht. Das Beispiel zeigt anschließend, wie KEY_NAME den Namen des Schlüssels zurückgibt, wenn der Funktion der verschlüsselte Text übergeben wird.
-- 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] ;
Weitere Informationen
sys.symmetric_keys (Transact-SQL)
ENCRYPTBYKEY (Transact-SQL)
DECRYPTBYKEYAUTOASYMKEY (Transact-SQL)
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für