Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
azure SQL Managed Instance
Tato funkce dešifruje šifrovaná data. Nejprve dešifruje symetrický klíč pomocí samostatného asymetrického klíče a potom dešifruje šifrovaná data pomocí symetrického klíče extrahovaného v prvním kroku.
Syntaxe
DECRYPTBYKEYAUTOASYMKEY ( akey_ID , akey_password
, { 'ciphertext' | @ciphertext }
[ , { add_authenticator | @add_authenticator }
[ , { authenticator | @authenticator } ] ] )
Arguments
akey_ID
ID asymetrického klíče použitého k šifrování symetrického klíče. akey_ID má datový typ int .
akey_password
Heslo chrání asymetrický klíč.
akey_password může mít NULL hodnotu, pokud hlavní klíč databáze (DMK) chrání asymetrický privátní klíč.
akey_password má datový typ nvarchar .
Ciphertext
Data zašifrovaná klíčem. šiferný text má varbinární datový typ.
@ciphertext
Proměnná typu varbinary obsahující data zašifrovaná symetrickým klíčem.
add_authenticator
Určuje, jestli byl původní proces šifrování zahrnutý a zašifrovaný ověřovací objekt společně s prostým textem. Musí odpovídat hodnotě předané šifrovacímu klíči ENCRYPTBYKEY během procesu šifrování dat. add_authenticator má hodnotu 1, pokud proces šifrování použil ověřovací program. add_authenticator má datový typ int .
@add_authenticator
Proměnná označující, jestli byl původní proces šifrování zahrnutý a zašifrovaný, ověřovací objekt společně s prostým textem. Musí odpovídat hodnotě předané šifrovacímu klíči ENCRYPTBYKEY během procesu šifrování dat. @add_authenticator má datový typ int .
autentikátor
Data používaná jako základ pro generování ověřovacího objektu. Musí odpovídat hodnotě zadané pro ENCRYPTBYKEY. authenticator má datový typ sysname .
@authenticator
Proměnná obsahující data, ze kterých se generuje ověřovací objekt. Musí odpovídat hodnotě zadané pro ENCRYPTBYKEY. @authenticator má datový typ sysname .
@add_authenticator
Proměnná označující, jestli byl původní proces šifrování zahrnutý a zašifrovaný, ověřovací objekt společně s prostým textem. Musí odpovídat hodnotě předané šifrovacímu klíči ENCRYPTBYKEY během procesu šifrování dat. @add_authenticator má datový typ int .
autentikátor
Data používaná jako základ pro generování ověřovacího objektu. Musí odpovídat hodnotě zadané pro ENCRYPTBYKEY. authenticator má datový typ sysname .
@authenticator
Proměnná obsahující data, ze kterých se generuje ověřovací objekt. Musí odpovídat hodnotě zadané pro ENCRYPTBYKEY. @authenticator má datový typ sysname .
Návratové typy
varbinary, s maximální velikostí 8 000 bajtů.
Poznámky
DECRYPTBYKEYAUTOASYMKEY kombinuje funkčnost obou OPEN SYMMETRIC KEY a DECRYPTBYKEY. V jedné operaci nejprve dešifruje symetrický klíč a pak dešifruje šifrovaný šifrovaný text s tímto klíčem.
Povolení
Vyžaduje VIEW DEFINITION oprávnění pro symetrický klíč a CONTROL oprávnění pro asymetrický klíč.
Examples
Tento příklad ukazuje, jak DECRYPTBYKEYAUTOASYMKEY zjednodušit dešifrovací kód. Tento kód by se měl spustit v AdventureWorks2025 databázi, která ještě nemá sadu DMK. Nahraďte <password> silným heslem.
--Create the keys and certificate.
USE AdventureWorks2022;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>';
OPEN MASTER KEY DECRYPTION BY PASSWORD = '<password>';
CREATE ASYMMETRIC KEY SSN_AKey
WITH ALGORITHM = RSA_2048;
GO
CREATE SYMMETRIC KEY SSN_Key_02
WITH ALGORITHM = DES
ENCRYPTION BY ASYMMETRIC KEY SSN_AKey;
GO
--
--Add a column of encrypted data.
ALTER TABLE HumanResources.Employee
ADD EncryptedNationalIDNumber2 VARBINARY (128);
OPEN SYMMETRIC KEY SSN_Key_02 DECRYPTION BY ASYMMETRIC KEY SSN_AKey;
UPDATE HumanResources.Employee
SET EncryptedNationalIDNumber2 = EncryptByKey(Key_GUID('SSN_Key_02'), NationalIDNumber);
GO
--Close the key used to encrypt the data.
CLOSE SYMMETRIC KEY SSN_Key_02;
--
--There are two ways to decrypt the stored data.
--
--OPTION ONE, using DecryptByKey()
--1. Open the symmetric key.
--2. Decrypt the data.
--3. Close the symmetric key.
OPEN SYMMETRIC KEY SSN_Key_02 DECRYPTION BY ASYMMETRIC KEY SSN_AKey;
SELECT NationalIDNumber,
EncryptedNationalIDNumber2 AS 'Encrypted ID Number',
CONVERT (NVARCHAR, DecryptByKey(EncryptedNationalIDNumber2)) AS 'Decrypted ID Number'
FROM HumanResources.Employee;
CLOSE SYMMETRIC KEY SSN_Key_02;
--OPTION TWO, using DECRYPTBYKEYAUTOASYMKEY()
SELECT NationalIDNumber,
EncryptedNationalIDNumber2 AS 'Encrypted ID Number',
CONVERT (NVARCHAR, DECRYPTBYKEYAUTOASYMKEY(AsymKey_ID('SSN_AKey'), NULL, EncryptedNationalIDNumber2)) AS 'Decrypted ID Number'
FROM HumanResources.Employee;
GO
Související obsah
- OPEN SYMMETRIC KEY (Transact-SQL)
- ENCRYPTBYKEY (Transact-SQL)
- DECRYPTBYKEY (Transact-SQL)
- Hierarchie šifrování