Aracılığıyla paylaş


KEY_NAME (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Simetrik anahtarın adını simetrik anahtar GUID veya şifreli metinden döndürür.

Transact-SQL söz dizimi kuralları

Sözdizimi

KEY_NAME ( ciphertext | key_guid )   

Arguments

Ciphertext
Metin simetrik anahtarla şifrelenmiştir. şifreli metinvarbinary(8000) tipidir.

key_guid
Simetrik anahtarın GUID'i. key_guidtür uniqueidentifier.

Geri Dönen Tipler

varchar(128)

Permissions

SQL Server 2005 (9.x)'den itibaren, meta verilerin görünürlüğü, kullanıcının sahip olduğu veya izni verilen güvenlikli varlıklarla sınırlıdır. Daha fazla bilgi için bkz. meta veri görünürlüğü yapılandırması .

Örnekler

A. Simetrik anahtarın adının gösterilmesi key_guid

Ana veritabanı ##MS_ServiceMasterKey## adlı simetrik bir anahtar içerir. Aşağıdaki örnek, sys.symmetric_keys dinamik yönetim görünümünden o anahtarın GUID'sini alır, bir değişkene atar ve ardından bu değişkeni KEY_NAME fonksiyonuna iletir; böylece GUID'ye karşılık gelen ismin nasıl döndürüleceğini gösterir.

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. Şifreli metin kullanılarak simetrik anahtarın adının gösterilmesi

Aşağıdaki örnek, simetrik bir anahtar oluşturma ve verileri bir tabloya doldurma sürecinin tamamını göstermektedir. Örnek, şifrelenmiş metin KEY_NAME anahtarın adını nasıl geri verdiğini gösterir.

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

Ayrıca Bkz.

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