Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Zwraca nazwę klucza symetrycznego z GUID klucza symetrycznego lub tekstu szyfrującego.
Transact-SQL konwencje składni
Składnia
KEY_NAME ( ciphertext | key_guid )
Arguments
szyfrogram
Jest tekstem zaszyfrowanym przez klucz symetryczny.
Tekst szyfrowy to typ varbinary(8000).
key_guid
Jest GUID klucza symetrycznego.
key_guid to typ uniqueidentifier.
Typy zwrócone
Permissions
Począwszy od SQL Server 2005 (9.x), widoczność metadanych ogranicza się do zabezpieczalnych elementów, które użytkownik posiada lub na które otrzymał pewne uprawnienia. Aby uzyskać więcej informacji, zobacz Konfiguracja widoczności metadanych.
Przykłady
A. Wyświetlanie nazwy klucza symetrycznego za pomocą key_guid
Główna baza danych zawiera symetryczny klucz o nazwie ##MS_ServiceMasterKey##. Poniższy przykład pobiera GUID tego klucza z widoku zarządzania dynamicznego sys.symmetric_keys, przypisuje go do zmiennej, a następnie przekazuje tę zmienną funkcji KEY_NAME, aby pokazać, jak zwrócić nazwę odpowiadającą 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. Wyświetlanie nazwy klucza symetrycznego za pomocą tekstu szyfrującego
Poniższy przykład pokazuje cały proces tworzenia klucza symetrycznego i zapełniania danych do tabeli. Przykład pokazuje też, jak KEY_NAME zwraca nazwę klucza po przekazaniu zaszyfrowanego tekstu.
-- 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] ;
Zobacz też
sys.symmetric_keys (Transact-SQL)
ENCRYPTBYKEY (Transact-SQL)
DECRYPTBYKEYAUTOASYMKEY (Transact-SQL)