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.
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)