Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op: SQL Server 2016 (13.x) en hoger
Azure SQL Database
Azure SQL Managed Instance
Analyseert de opgegeven Transact-SQL-instructie en de bijbehorende parameters om te bepalen welke parameters overeenkomen met databasekolommen die worden beveiligd met de functie Always Encrypted. Retourneert versleutelingsmetagegevens voor de parameters die overeenkomen met versleutelde kolommen.
Syntaxis
sp_describe_parameter_encryption
[ @tsql = ] N'tsql'
[ , [ @params = ] N'@parameter_name data_type [ , ... n ]' ]
[ ; ]
Argumenten
Belangrijk
Argumenten voor uitgebreide opgeslagen procedures moeten worden ingevoerd in de specifieke volgorde, zoals beschreven in de sectie Syntaxis. Als de parameters niet in de volgorde zijn ingevoerd, treedt er een foutbericht op.
[ @tsql = ] 'tsql-'
Een of meer Transact-SQL instructies. @tsql kan nvarchar(n) of nvarchar(max)zijn.
[ @params = ] N'@parameter_namedata_type [ ,... n ]'
@params biedt een declaratietekenreeks voor parameters voor @tsql, die vergelijkbaar is met sp_executesql
. Parameters kunnen nvarchar(n) of nvarchar(max)zijn.
Een tekenreeks die de definities bevat van alle parameters die zijn ingesloten in de Transact-SQL_batch. De tekenreeks moet een Unicode-constante of een Unicode-variabele zijn. Elke parameterdefinitie bestaat uit een parameternaam en een gegevenstype.
n is een tijdelijke aanduiding die aanvullende parameterdefinities aangeeft.
n is een tijdelijke aanduiding die aanvullende parameterdefinities aangeeft. Elke parameter die in de instructie is opgegeven, moet worden gedefinieerd in @params. Als de Transact-SQL-instructie of batch in de instructie geen parameters bevat, is @params niet vereist.
NULL
is de standaardwaarde voor deze parameter.
Retourwaarde
0
geeft aan dat het is gelukt. Iets anders geeft aan dat de fout is mislukt.
Resultatenset
sp_describe_parameter_encryption
retourneert twee resultatensets:
De resultatenset waarin cryptografische sleutels worden beschreven die zijn geconfigureerd voor databasekolommen, komen de parameters van de opgegeven Transact-SQL-instructie overeen.
De resultatenset waarin wordt beschreven hoe bepaalde parameters moeten worden versleuteld. Deze resultatenset verwijst naar de sleutels die worden beschreven in de eerste resultatenset.
Elke rij van de eerste resultatenset beschrijft een paar sleutels: een versleutelde sleutel voor kolomversleuteling en de bijbehorende CMK (Column Master Key).
Kolomnaam | Gegevenstype | Beschrijving |
---|---|---|
column_encryption_key_ordinal |
Id van de rij in de resultatenset. | |
database_id |
Database-id. | |
column_encryption_key_id |
De id van de kolomversleutelingssleutel. Opmerking: deze id geeft een rij aan in de sys.column_encryption_keys catalogusweergave. |
|
column_encryption_key_version |
Gereserveerd voor toekomstig gebruik. Bevat momenteel altijd 1 . |
|
column_encryption_key_metadata_version |
binary(8) | Een tijdstempel die de aanmaaktijd van de kolomversleutelingssleutel vertegenwoordigt. |
column_encryption_key_encrypted_value |
varbinary(4000) | De versleutelde waarde van de kolomversleutelingssleutel. |
column_master_key_store_provider_name |
sysname- | De naam van de provider voor het sleutelarchief dat de CMK bevat, die is gebruikt om de versleutelde waarde van de kolomversleutelingssleutel te produceren. |
column_master_key_path |
nvarchar(4000) | Het sleutelpad van de CMK, dat is gebruikt om de versleutelde waarde van de kolomversleutelingssleutel te produceren. |
column_encryption_key_encryption_algorithm_name |
sysname- | De naam van het versleutelingsalgoritmen dat wordt gebruikt om de versleutelingswaarde van de kolomversleutelingssleutel te produceren. |
Elke rij van de tweede resultatenset bevat versleutelingsmetagegevens voor één parameter.
Kolomnaam | Gegevenstype | Beschrijving |
---|---|---|
parameter_ordinal |
Id van de rij in de resultatenset. | |
parameter_name |
sysname- | Naam van een van de parameters die zijn opgegeven in het argument @params. |
column_encryption_algorithm |
kleine | Code die het versleutelingsalgoritmen aangeeft dat is geconfigureerd voor de kolom waarop de parameter overeenkomt. De momenteel ondersteunde waarde wordt 2 voor AEAD_AES_256_CBC_HMAC_SHA_256 . |
column_encryption_type |
kleine | Code die het versleutelingstype aangeeft dat voor de kolom is geconfigureerd, komt de parameter overeen. De ondersteunde waarden zijn:0 - tekst zonder opmaak (de kolom is niet versleuteld)1 - deterministische versleuteling2 : gerandomiseerde versleuteling. |
column_encryption_key_ordinal |
Code van de rij in de eerste resultatenset. In de rij waarnaar wordt verwezen, wordt de kolomversleutelingssleutel beschreven die is geconfigureerd voor de kolom. De parameter komt overeen met. | |
column_encryption_normalization_rule_version |
kleine | Versienummer van het type normalisatie-algoritme. |
Opmerkingen
Een SQL Server-clientstuurprogramma dat Always Encrypted ondersteunt, roept automatisch sp_describe_parameter_encryption
aan om versleutelingsmetagegevens op te halen voor geparameteriseerde query's die door de toepassing worden uitgegeven. Vervolgens gebruikt het stuurprogramma de versleutelingsmetagegevens om de waarden van parameters te versleutelen die overeenkomen met databasekolommen die zijn beveiligd met Always Encrypted. Deze vervangt de parameterwaarden voor tekst zonder opmaak die door de toepassing worden verzonden, met de versleutelde parameterwaarden voordat de query naar de database-engine wordt verzonden.
Machtigingen
De VIEW ANY COLUMN ENCRYPTION KEY DEFINITION
- en VIEW ANY COLUMN MASTER KEY DEFINITION
-machtigingen in de database vereisen.
Voorbeelden
In het volgende voorbeeld wordt de waarde voor ENCRYPTED_VALUE
afgekapt voor weergavedoeleinden.
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';
Dit is de eerste resultatenset:
Kolom | Waarde |
---|---|
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 |
Dit is de tweede resultatenset:
Kolom | Waarde |
---|---|
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 |