Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Devolve o nome da chave simétrica a partir de um GUID de chave simétrica ou de texto cifrado.
Transact-SQL convenções de sintaxe
Sintaxe
KEY_NAME ( ciphertext | key_guid )
Arguments
texto cifrado
É o texto encriptado pela chave simétrica.
O texto cifrado é o tipo Varbinary(8000).
key_guid
É o GUID da chave simétrica.
key_guid é typeidentifier.
Tipos Retornados
Varchar(128)
Permissions
A partir do SQL Server 2005 (9.x), a visibilidade dos metadados limita-se a seguranças que um utilizador possui ou sobre os quais lhe foi concedida alguma permissão. Para obter mais informações, consulte Configuração de visibilidade de metadados.
Examples
A. Mostrar o nome de uma chave simétrica usando a key_guid
A base de dados mestre contém uma chave simétrica chamada ##MS_ServiceMasterKey##. O exemplo seguinte obtém o GUID dessa chave da vista de gestão dinâmica sys.symmetric_keys, atribui-o a uma variável e depois passa essa variável à função KEY_NAME para demonstrar como devolver o nome correspondente ao 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. Exibir o nome de uma chave simétrica usando o texto cifrado
O exemplo seguinte demonstra todo o processo de criação de uma chave simétrica e de preencher os dados numa tabela. O exemplo mostra então como KEY_NAME devolve o nome da chave quando passa o texto encriptado.
-- 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] ;
Ver também
sys.symmetric_keys (Transact-SQL)
ENCRYPTBYKEY (Transact-SQL)
DECRYPTBYKEYAUTOASYMKEY (Transact-SQL)