Bagikan melalui


KEY_NAME (T-SQL)

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Mengembalikan nama kunci konten dari GUID kunci konten atau teks cipher.

Konvensi sintaks transact-SQL

Sintaks

KEY_NAME ( ciphertext | key_guid )   

Argumen

Ciphertext
Apakah teks dienkripsi oleh kunci konten. cyphertext adalah jenis varbinary(8000).

key_guid
Adalah GUID kunci simetris. key_guid adalah jenis pengidentifikasi unik.

Tipe yang Dikembalikan

varchar(128)

Izin

Dimulai di SQL Server 2005 (9.x), visibilitas metadata terbatas pada keamanan yang dimiliki pengguna atau di mana pengguna telah diberikan beberapa izin. Untuk informasi selengkapnya, lihat Konfigurasi Visibilitas Metadata.

Contoh

J. Menampilkan nama kunci konten menggunakan key_guid

Database master berisi kunci konten bernama ##MS_ServiceMasterKey##. Contoh berikut mendapatkan GUID kunci tersebut dari tampilan manajemen dinamis sys.symmetric_keys, menetapkannya ke variabel, lalu meneruskan variabel tersebut ke fungsi KEY_NAME untuk menunjukkan cara mengembalikan nama yang sesuai dengan 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. Menampilkan nama kunci konten menggunakan teks cipher

Contoh berikut menunjukkan seluruh proses pembuatan kunci konten dan mengisi data ke dalam tabel. Contoh kemudian menunjukkan bagaimana KEY_NAME mengembalikan nama kunci saat meneruskan teks terenkripsi.

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

Lihat Juga

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