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 2016 (13.x) a novější
azure SQL Database
azure SQL Managed Instance
Analyzuje zadaný příkaz Transact-SQL a jeho parametry a určí, které parametry odpovídají databázovým sloupcům chráněným pomocí funkce Always Encrypted. Vrátí metadata šifrování parametrů, které odpovídají šifrovaným sloupcům.
Syntax
sp_describe_parameter_encryption
[ @tsql = ] N'tsql'
[ , [ @params = ] N'@parameter_name data_type [ , ... n ]' ]
[ ; ]
Argumenty
Důležitý
Argumenty rozšířených uložených procedur musí být zadány v určitém pořadí, jak je popsáno v části Syntaxe. Pokud jsou parametry zadány mimo pořadí, dojde k chybové zprávě.
[ @tsql = ]tsql
Jeden nebo více příkazů Transact-SQL. @tsql může být nvarchar(n) nebo nvarchar(max).
[ @params = ] N'@parameter_namedata_type [ ,... n ]'
@params poskytuje řetězec deklarace pro parametry pro @tsql, který je podobný sp_executesql
. Parametry mohou být nvarchar(n) nebo nvarchar(max).
Řetězec, který obsahuje definice všech parametrů, které jsou vloženy v transact-SQL_batch. Řetězec musí být buď konstanta Unicode, nebo proměnná Unicode. Každá definice parametru se skládá z názvu parametru a datového typu.
n je zástupný symbol označující další definice parametrů.
n je zástupný symbol označující další definice parametrů. Každý parametr zadaný v příkazu musí být definován v @params. Pokud příkaz Transact-SQL nebo dávka v příkazu neobsahují parametry, @params se nevyžaduje.
NULL
je výchozí hodnota tohoto parametru.
Návratová hodnota
0
značí úspěch. Cokoli jiného značí selhání.
Sada výsledků
sp_describe_parameter_encryption
vrátí dvě sady výsledků:
Sada výsledků popisující kryptografické klíče nakonfigurované pro databázové sloupce, parametry zadaného příkazu Transact-SQL odpovídají.
Sada výsledků popisující, jak mají být určité parametry šifrované. Tato sada výsledků odkazuje na klíče popsané v první sadě výsledků.
Každý řádek první sady výsledků popisuje dvojici klíčů: šifrovací klíč šifrovaného sloupce a odpovídající hlavní klíč sloupce (CMK).
Název sloupce | Datový typ | Popis |
---|---|---|
column_encryption_key_ordinal |
int | ID řádku v sadě výsledků |
database_id |
int | ID databáze. |
column_encryption_key_id |
int | ID šifrovacího klíče sloupce. Poznámka: toto ID označuje řádek v zobrazení katalogu sys.column_encryption_keys. |
column_encryption_key_version |
int | Vyhrazeno pro budoucí použití. V současné době vždy obsahuje 1 . |
column_encryption_key_metadata_version |
binární(8) | Časové razítko představující čas vytvoření šifrovacího klíče sloupce. |
column_encryption_key_encrypted_value |
varbinary(4000) | Šifrovaná hodnota šifrovacího klíče sloupce. |
column_master_key_store_provider_name |
sysname | Název zprostředkovatele úložiště klíčů, který obsahuje klíč CMK, který byl použit k vytvoření šifrované hodnoty šifrovacího klíče sloupce. |
column_master_key_path |
nvarchar(4000) | Cesta ke klíči klíče CMK, která byla použita k vytvoření šifrované hodnoty šifrovacího klíče sloupce. |
column_encryption_key_encryption_algorithm_name |
sysname | Název šifrovacího algoritmu použitého k vytvoření šifrovací hodnoty šifrovacího klíče sloupce. |
Každý řádek druhé sady výsledků obsahuje metadata šifrování pro jeden parametr.
Název sloupce | Datový typ | Popis |
---|---|---|
parameter_ordinal |
int | ID řádku v sadě výsledků |
parameter_name |
sysname | Název jednoho z parametrů zadaných v argumentu @params |
column_encryption_algorithm |
tinyint | Kód označující šifrovací algoritmus nakonfigurovaný pro sloupec, který parametr odpovídá. Aktuálně podporovaná hodnota je 2 pro AEAD_AES_256_CBC_HMAC_SHA_256 . |
column_encryption_type |
tinyint | Kód označující typ šifrování nakonfigurovaný pro sloupec odpovídá parametru. Podporované hodnoty jsou:0 – prostý text (sloupec není šifrovaný)1 – deterministické šifrování2 – náhodné šifrování. |
column_encryption_key_ordinal |
int | Kód řádku v první sadě výsledků Odkazovaný řádek popisuje šifrovací klíč sloupce nakonfigurovaný pro sloupec, který odpovídá parametru. |
column_encryption_normalization_rule_version |
tinyint | Číslo verze algoritmu normalizace typu |
Poznámky
Klientský ovladač SQL Serveru, který podporuje funkci Always Encrypted, automaticky volá sp_describe_parameter_encryption
k načtení metadat šifrování pro parametrizované dotazy vydané aplikací. Ovladač pak pomocí metadat šifrování zašifruje hodnoty parametrů, které odpovídají sloupcům databáze chráněným funkcí Always Encrypted. Před odesláním dotazu do databázového stroje nahradí hodnoty parametrů prostého textu odesílané aplikací za šifrované hodnoty parametrů.
Dovolení
Vyžadovat oprávnění VIEW ANY COLUMN ENCRYPTION KEY DEFINITION
a VIEW ANY COLUMN MASTER KEY DEFINITION
v databázi.
Příklady
Následující příklad zkrátí hodnotu pro ENCRYPTED_VALUE
, pro účely zobrazení.
CREATE COLUMN MASTER KEY [CMK1]
WITH (
KEY_STORE_PROVIDER_NAME = N'MSSQL_CERTIFICATE_STORE',
KEY_PATH = N'CurrentUser/my/A66BB0F6DD70BDFF02B62D0F87E340288E6F9305'
);
GO
CREATE COLUMN ENCRYPTION KEY [CEK1]
WITH VALUES (
COLUMN_MASTER_KEY = [CMK1],
ALGORITHM = 'RSA_OAEP',
ENCRYPTED_VALUE = 0x016E00000163007500720072<...> -- truncated in this example
);
GO
CREATE TABLE t1 (
c1 INT ENCRYPTED WITH (
COLUMN_ENCRYPTION_KEY = [CEK1],
ENCRYPTION_TYPE = Randomized,
ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256'
) NULL,
);
EXEC sp_describe_parameter_encryption
N'INSERT INTO t1 VALUES(@c1)',
N'@c1 INT';
Tady je první sada výsledků:
Sloupec | Hodnota |
---|---|
column_encryption_key_ordinal |
1 |
database_id |
5 |
column_encryption_key_id |
1 |
column_encryption_key_version |
1 |
column_encryption_key_metadata_version |
0x99EDA60083A50000 |
column_encryption_key_encrypted_value |
0x016E00000163007500720072<...> |
column_master_key_store_provider_name |
MSSQL_CERTIFICATE_STORE |
column_master_key_path |
CurrentUser/my/A66BB0F6DD70BDFF02B62D0F87E340288E6F9305 |
column_encryption_key_encryption_algorithm_name |
RSA_OAEP |
Tady je druhá sada výsledků:
Sloupec | Hodnota |
---|---|
parameter_ordinal |
1 |
parameter_name |
@c1 |
column_encryption_algorithm |
1 |
column_encryption_type |
1 |
column_encryption_key_ordinal |
1 |
column_encryption_normalization_rule_version |
1 |