Megosztás a következőn keresztül:


sp_describe_parameter_encryption (Transact-SQL)

A következőkre vonatkozik: SQL Server 2016 (13.x) és újabb verziók Azure SQL DatabaseFelügyelt Azure SQL-példány

Elemzi a megadott Transact-SQL utasítást és annak paramétereit annak meghatározásához, hogy mely paraméterek felelnek meg az Always Encrypted funkcióval védett adatbázisoszlopoknak. A titkosított oszlopoknak megfelelő paraméterek titkosítási metaadatait adja vissza.

Szintaxis

sp_describe_parameter_encryption
    [ @tsql = ] N'tsql'
    [ , [ @params = ] N'@parameter_name data_type [ , ... n ]' ]
[ ; ]

Érvek

Fontos

A kiterjesztett tárolt eljárások argumentumait a Szintaxis szakaszban leírt sorrendben kell megadni. Ha a paraméterek sorrenden kívül vannak beírva, hibaüzenet jelenik meg.

[ @tsql = ] 'tsql'

Egy vagy több Transact-SQL utasítás. @tsql lehet nvarchar(n) vagy nvarchar(max).

[ @params = ] N'@parameter_namedata_type [ ,... n ]'

@params deklarációs sztringet biztosít a @tsqlparamétereihez, amely hasonló a sp_executesql. A paraméterek lehetnek nvarchar(n) vagy nvarchar(max).

A Transact-SQL_batch beágyazott összes paraméter definícióit tartalmazó sztring. A sztringnek Unicode-állandónak vagy Unicode-változónak kell lennie. Minden paraméterdefiníció egy paraméternévből és egy adattípusból áll. n egy helyőrző, amely további paraméterdefiníciókat jelez. n egy helyőrző, amely további paraméterdefiníciókat jelez. Az utasításban megadott paramétereket @paramskell definiálni. Ha az utasításban szereplő Transact-SQL utasítás vagy köteg nem tartalmaz paramétereket, @params nincs szükség. NULL a paraméter alapértelmezett értéke.

Visszaadott érték

0 a sikert jelzi. Bármi más is hibát jelez.

Eredményhalmaz

sp_describe_parameter_encryption két eredményhalmazt ad vissza:

  • Az adatbázisoszlopokhoz konfigurált titkosítási kulcsokat leíró eredménykészlet, amelynek a megadott Transact-SQL utasítás paraméterei felelnek meg.

  • Az adott paraméterek titkosításának módját leíró eredményhalmaz. Ez az eredménykészlet az első eredményhalmazban leírt kulcsokra hivatkozik.

Az első eredményhalmaz minden sora egy kulcspárt ír le: egy titkosított oszloptitkosítási kulcsot és annak megfelelő oszlop főkulcsát (CMK).

Oszlop neve Adattípus Leírás
column_encryption_key_ordinal Az eredményhalmaz sorának azonosítója.
database_id Adatbázis-azonosító.
column_encryption_key_id Az oszloptitkosítási kulcs azonosítója.

Megjegyzés: ez az azonosító egy sort jelöl a sys.column_encryption_keys katalógusnézetben.
column_encryption_key_version Jövőbeli használatra fenntartva. Jelenleg mindig 1tartalmaz.
column_encryption_key_metadata_version bináris(8) Az oszloptitkosítási kulcs létrehozási idejét jelző időbélyeg.
column_encryption_key_encrypted_value varbinary(4000) Az oszloptitkosítási kulcs titkosított értéke.
column_master_key_store_provider_name sysname A CMK-t tartalmazó kulcstároló szolgáltatójának neve, amely az oszloptitkosítási kulcs titkosított értékének előállítására szolgál.
column_master_key_path nvarchar(4000) A CMK kulcsútvonala, amely az oszloptitkosítási kulcs titkosított értékének előállítására szolgál.
column_encryption_key_encryption_algorithm_name sysname Az oszloptitkosítási kulcs titkosítási értékének előállításához használt titkosítási algoritmus neve.

A második eredményhalmaz minden sora egy paraméter titkosítási metaadatait tartalmazza.

Oszlop neve Adattípus Leírás
parameter_ordinal Az eredményhalmaz sorának azonosítója.
parameter_name sysname A @params argumentumban megadott paraméterek egyikének neve.
column_encryption_algorithm apró A paraméternek megfelelő oszlophoz konfigurált titkosítási algoritmust jelző kód. A jelenleg támogatott érték a 2AEAD_AES_256_CBC_HMAC_SHA_256.
column_encryption_type apró Az oszlophoz konfigurált titkosítási típust jelző kód, a paraméter ennek felel meg. A támogatott értékek a következők:

0 – egyszerű szöveg (az oszlop nincs titkosítva)
1 – determinisztikus titkosítás
2 – véletlenszerű titkosítás.
column_encryption_key_ordinal Az első eredményhalmaz sorának kódja. A hivatkozott sor az oszlophoz konfigurált oszloptitkosítási kulcsot írja le, ennek a paraméternek felel meg.
column_encryption_normalization_rule_version apró A típus normalizálási algoritmus verziószáma.

Megjegyzések

Az Always Encryptedt támogató SQL Server-ügyfélillesztő automatikusan meghívja sp_describe_parameter_encryption, hogy lekérje az alkalmazás által kibocsátott paraméteres lekérdezések titkosítási metaadatait. Ezután az illesztőprogram a titkosítási metaadatok használatával titkosítja az Always Encrypted által védett adatbázisoszlopoknak megfelelő paraméterek értékeit. Az alkalmazás által küldött egyszerű szöveges paraméterértékeket helyettesíti a titkosított paraméterértékekkel, mielőtt elküldené a lekérdezést az adatbázismotornak.

Engedélyek

Az adatbázis VIEW ANY COLUMN ENCRYPTION KEY DEFINITION és VIEW ANY COLUMN MASTER KEY DEFINITION engedélyeinek megkövetelése.

Példák

Az alábbi példa csonkolja a ENCRYPTED_VALUEértékét megjelenítési célokra.

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,
);

EXECUTE sp_describe_parameter_encryption
    N'INSERT INTO t1 VALUES(@c1)',
    N'@c1 INT';

Az első eredményhalmaz a következő:

Oszlop Érték
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

Íme a második eredményhalmaz:

Oszlop Érték
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