Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för: SQL Server 2016 (13.x) och senare
Azure SQL Database
Azure SQL Managed Instance
Analyserar den angivna Transact-SQL-instruktionen och dess parametrar för att avgöra vilka parametrar som motsvarar databaskolumner som skyddas med funktionen Always Encrypted. Returnerar krypteringsmetadata för de parametrar som motsvarar krypterade kolumner.
Syntax
sp_describe_parameter_encryption
[ @tsql = ] N'tsql'
[ , [ @params = ] N'@parameter_name data_type [ , ... n ]' ]
[ ; ]
Argument
Viktig
Argument för utökade lagrade procedurer måste anges i den specifika ordning som beskrivs i avsnittet Syntax. Om parametrarna anges i fel ordning visas ett felmeddelande.
[ @tsql = ] "tsql"
En eller flera Transact-SQL-instruktioner. @tsql kan vara nvarchar(n) eller nvarchar(max).
[ @params = ] N'@parameter_namedata_type [ ,... n ]'
@params innehåller en deklarationssträng för parametrar för @tsql, som liknar sp_executesql
. Parametrarna kan vara nvarchar(n) eller nvarchar(max).
En sträng som innehåller definitionerna för alla parametrar som är inbäddade i Transact-SQL_batch. Strängen måste vara antingen en Unicode-konstant eller en Unicode-variabel. Varje parameterdefinition består av ett parameternamn och en datatyp.
n är en platshållare som anger ytterligare parameterdefinitioner.
n är en platshållare som anger ytterligare parameterdefinitioner. Varje parameter som anges i -instruktionen måste definieras i @params. Om Transact-SQL-instruktionen eller batchen i -instruktionen inte innehåller parametrar krävs inte @params.
NULL
är standardvärdet för den här parametern.
Returvärde
0
indikerar framgång. Allt annat tyder på fel.
Resultatuppsättning
sp_describe_parameter_encryption
returnerar två resultatuppsättningar:
Resultatuppsättningen som beskriver kryptografiska nycklar som konfigurerats för databaskolumner motsvarar parametrarna för den angivna Transact-SQL-instruktionen.
Resultatuppsättningen som beskriver hur vissa parametrar ska krypteras. Den här resultatuppsättningen refererar till nycklarna som beskrivs i den första resultatuppsättningen.
Varje rad i den första resultatuppsättningen beskriver ett par nycklar: en krypterad kolumnkrypteringsnyckel och dess motsvarande kolumnhuvudnyckel (CMK).
Kolumnnamn | Datatyp | Beskrivning |
---|---|---|
column_encryption_key_ordinal |
int | ID för raden i resultatuppsättningen. |
database_id |
int | Databas-ID. |
column_encryption_key_id |
int | Kolumnkrypteringsnyckelns ID. Obs! det här ID:t anger en rad i sys.column_encryption_keys katalogvy. |
column_encryption_key_version |
int | Reserverad för framtida användning. Innehåller för närvarande alltid 1 . |
column_encryption_key_metadata_version |
binär(8) | En tidsstämpel som representerar skapandetiden för kolumnkrypteringsnyckeln. |
column_encryption_key_encrypted_value |
varbinary(4000) | Det krypterade värdet för kolumnkrypteringsnyckeln. |
column_master_key_store_provider_name |
sysname | Namnet på providern för nyckelarkivet som innehåller CMK, som användes för att skapa det krypterade värdet för kolumnkrypteringsnyckeln. |
column_master_key_path |
nvarchar(4000) | Nyckelsökvägen för CMK:en, som användes för att skapa det krypterade värdet för kolumnkrypteringsnyckeln. |
column_encryption_key_encryption_algorithm_name |
sysname | Namnet på krypteringsalgoritmen som används för att skapa krypteringsvärdet för kolumnkrypteringsnyckeln. |
Varje rad i den andra resultatuppsättningen innehåller krypteringsmetadata för en parameter.
Kolumnnamn | Datatyp | Beskrivning |
---|---|---|
parameter_ordinal |
int | ID för raden i resultatuppsättningen. |
parameter_name |
sysname | Namnet på en av parametrarna som anges i argumentet @params. |
column_encryption_algorithm |
pytteliten | Kod som anger krypteringsalgoritmen som konfigurerats för kolumnen som parametern motsvarar. Det värde som stöds för närvarande är 2 för AEAD_AES_256_CBC_HMAC_SHA_256 . |
column_encryption_type |
pytteliten | Kod som anger den krypteringstyp som konfigurerats för kolumnen motsvarar parametern. De värden som stöds är:0 – klartext (kolumnen är inte krypterad)1 – deterministisk kryptering2 – randomiserad kryptering. |
column_encryption_key_ordinal |
int | Kod för raden i den första resultatuppsättningen. Den refererade raden beskriver den kolumnkrypteringsnyckel som konfigurerats för kolumnen, parametern motsvarar. |
column_encryption_normalization_rule_version |
pytteliten | Versionsnummer för typnormaliseringsalgoritmen. |
Anmärkningar
En SQL Server-klientdrivrutin med stöd för Always Encrypted anropar automatiskt sp_describe_parameter_encryption
för att hämta krypteringsmetadata för parametriserade frågor som utfärdats av programmet. Sedan använder drivrutinen krypteringsmetadata för att kryptera värdena för parametrar som motsvarar databaskolumner som skyddas med Always Encrypted. Den ersätter parametervärdena i klartext som skickas av programmet med de krypterade parametervärdena innan frågan skickas till databasmotorn.
Behörigheter
Kräv behörigheterna VIEW ANY COLUMN ENCRYPTION KEY DEFINITION
och VIEW ANY COLUMN MASTER KEY DEFINITION
i databasen.
Exempel
I följande exempel trunkerar värdet för ENCRYPTED_VALUE
i visningssyfte.
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';
Här är den första resultatuppsättningen:
Spalt | Värde |
---|---|
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 |
Här är den andra resultatuppsättningen:
Spalt | Värde |
---|---|
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 |