Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2016 (13.x) i nowszych
Azure SQL Database
Azure SQL Managed Instance
Analizuje określoną instrukcję Transact-SQL i jej parametry, aby określić, które parametry odpowiadają kolumnom bazy danych chronionym za pomocą funkcji Always Encrypted. Zwraca metadane szyfrowania dla parametrów odpowiadających zaszyfrowanym kolumnom.
Składnia
sp_describe_parameter_encryption
[ @tsql = ] N'tsql'
[ , [ @params = ] N'@parameter_name data_type [ , ... n ]' ]
[ ; ]
Argumenty
Ważny
Argumenty dla rozszerzonych procedur składowanych należy wprowadzić w określonej kolejności zgodnie z opisem w sekcji składni. Jeśli parametry są wprowadzane poza kolejnością, wystąpi komunikat o błędzie.
[ @tsql = ] 'tsql'
Co najmniej jedna instrukcja Transact-SQL. @tsql może być nvarchar(n) lub nvarchar(max).
[ @params = ] N'@parameter_namedata_type [ ,... n ]"
@params zawiera ciąg deklaracji parametrów dla @tsql, który jest podobny do sp_executesql
. Parametry mogą być nvarchar(n) lub nvarchar(max).
Ciąg zawierający definicje wszystkich parametrów osadzonych w SQL_batch transact-SQL_batch. Ciąg musi być stałą Unicode lub zmienną Unicode. Każda definicja parametru składa się z nazwy parametru i typu danych.
n jest symbolem zastępczym wskazującym dodatkowe definicje parametrów.
n jest symbolem zastępczym wskazującym dodatkowe definicje parametrów. Każdy parametr określony w instrukcji musi być zdefiniowany w @params. Jeśli instrukcja Transact-SQL lub partia w instrukcji nie zawiera parametrów, @params nie jest wymagana.
NULL
jest wartością domyślną tego parametru.
Wartość zwracana
0
wskazuje powodzenie. Wszystkie inne elementy wskazują błąd.
Zestaw wyników
sp_describe_parameter_encryption
zwraca dwa zestawy wyników:
Zestaw wyników opisujący klucze kryptograficzne skonfigurowane dla kolumn bazy danych, parametry określonej instrukcji Transact-SQL odpowiadają.
Zestaw wyników opisujący sposób szyfrowania określonych parametrów. Ten zestaw wyników odwołuje się do kluczy opisanych w pierwszym zestawie wyników.
Każdy wiersz pierwszego zestawu wyników opisuje parę kluczy: zaszyfrowany klucz szyfrowania kolumny i odpowiadający mu klucz główny kolumny (CMK).
Nazwa kolumny | Typ danych | Opis |
---|---|---|
column_encryption_key_ordinal |
Identyfikator wiersza w zestawie wyników. | |
database_id |
Identyfikator bazy danych. | |
column_encryption_key_id |
Identyfikator klucza szyfrowania kolumny. Uwaga: ten identyfikator określa wiersz w widoku wykazu sys.column_encryption_keys. |
|
column_encryption_key_version |
Zarezerwowane do użytku w przyszłości. Obecnie zawsze zawiera 1 . |
|
column_encryption_key_metadata_version |
binary(8) | Sygnatura czasowa reprezentująca czas tworzenia klucza szyfrowania kolumny. |
column_encryption_key_encrypted_value |
varbinary(4000) | Zaszyfrowana wartość klucza szyfrowania kolumny. |
column_master_key_store_provider_name |
nazwa systemu | Nazwa dostawcy magazynu kluczy, który zawiera klucz cmK, który został użyty do wygenerowania zaszyfrowanej wartości klucza szyfrowania kolumny. |
column_master_key_path |
nvarchar(4000) | Ścieżka klucza, która została użyta do utworzenia zaszyfrowanej wartości klucza szyfrowania kolumny. |
column_encryption_key_encryption_algorithm_name |
nazwa systemu | Nazwa algorytmu szyfrowania używanego do generowania wartości szyfrowania klucza szyfrowania kolumny. |
Każdy wiersz drugiego zestawu wyników zawiera metadane szyfrowania dla jednego parametru.
Nazwa kolumny | Typ danych | Opis |
---|---|---|
parameter_ordinal |
Identyfikator wiersza w zestawie wyników. | |
parameter_name |
nazwa systemu | Nazwa jednego z parametrów określonych w argumencie @params. |
column_encryption_algorithm |
tinyint | Kod wskazujący algorytm szyfrowania skonfigurowany dla kolumny, do których odpowiada parametr. Obecnie obsługiwana wartość jest 2 dla AEAD_AES_256_CBC_HMAC_SHA_256 . |
column_encryption_type |
tinyint | Kod wskazujący typ szyfrowania skonfigurowany dla kolumny, który odpowiada parametrowi . Obsługiwane wartości to:0 — zwykły tekst (kolumna nie jest szyfrowana)1 — szyfrowanie deterministyczne2 — szyfrowanie losowe. |
column_encryption_key_ordinal |
Kod wiersza w pierwszym zestawie wyników. W przywoływanym wierszu opisano klucz szyfrowania kolumny skonfigurowany dla kolumny, który odpowiada parametrowi . | |
column_encryption_normalization_rule_version |
tinyint | Numer wersji algorytmu normalizacji typu. |
Uwagi
Sterownik klienta programu SQL Server obsługujący funkcję Always Encrypted automatycznie wywołuje sp_describe_parameter_encryption
w celu pobrania metadanych szyfrowania dla sparametryzowanych zapytań wystawionych przez aplikację. Następnie sterownik używa metadanych szyfrowania do szyfrowania wartości parametrów, które odpowiadają kolumnom bazy danych chronionym za pomocą funkcji Always Encrypted. Zastępuje ona wartości parametrów zwykłego tekstu przesłane przez aplikację przy użyciu zaszyfrowanych wartości parametrów przed wysłaniem zapytania do aparatu bazy danych.
Uprawnienia
Wymagaj uprawnień VIEW ANY COLUMN ENCRYPTION KEY DEFINITION
i VIEW ANY COLUMN MASTER KEY DEFINITION
w bazie danych.
Przykłady
Poniższy przykład obcina wartość dla ENCRYPTED_VALUE
, na potrzeby wyświetlania.
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';
Oto pierwszy zestaw wyników:
Kolumna | Wartość |
---|---|
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 |
Oto drugi zestaw wyników:
Kolumna | Wartość |
---|---|
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 |