Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2016 (13.x) dan versi yang
lebih baru Azure SQL Database
Azure SQL Managed Instance
Menganalisis pernyataan Transact-SQL yang ditentukan dan parameternya, untuk menentukan parameter mana yang sesuai dengan kolom database yang dilindungi dengan menggunakan fitur Always Encrypted. Mengembalikan metadata enkripsi untuk parameter yang sesuai dengan kolom terenkripsi.
Sintaks
sp_describe_parameter_encryption
[ @tsql = ] N'tsql'
[ , [ @params = ] N'@parameter_name data_type [ , ... n ]' ]
[ ; ]
Argumen
Penting
Argumen untuk prosedur tersimpan yang diperluas harus dimasukkan dalam urutan tertentu seperti yang dijelaskan di bagian Sintaks. Jika parameter dimasukkan di luar urutan, pesan kesalahan terjadi.
[ @tsql = ] 'tsql'
Satu atau beberapa pernyataan Transact-SQL. @tsql mungkin nvarchar(n) atau nvarchar(max).
[ @params = ] N'@parameter_name data_type [ ,... n ]'
@params menyediakan string deklarasi untuk parameter untuk @tsql, yang mirip sp_executesqldengan . Parameter mungkin nvarchar (n) atau nvarchar(max).
String yang berisi definisi semua parameter yang disematkan dalam transact-SQL_batch. String harus berupa konstanta Unicode atau variabel Unicode. Setiap definisi parameter terdiri dari nama parameter dan jenis data.
n adalah tempat penampung yang menunjukkan definisi parameter tambahan.
n adalah tempat penampung yang menunjukkan definisi parameter tambahan. Setiap parameter yang ditentukan dalam pernyataan harus ditentukan dalam @params. Jika pernyataan Transact-SQL atau batch dalam pernyataan tidak berisi parameter, @params tidak diperlukan.
NULL adalah nilai default untuk parameter ini.
Nilai hasil
0 menunjukkan keberhasilan. Hal lain menunjukkan kegagalan.
Tataan hasil
sp_describe_parameter_encryption mengembalikan dua tataan hasil:
Kumpulan hasil yang menjelaskan kunci kriptografi yang dikonfigurasi untuk kolom database, parameter pernyataan Transact-SQL yang ditentukan sesuai dengan.
Kumpulan hasil yang menjelaskan bagaimana parameter tertentu harus dienkripsi. Tataan hasil ini mereferensikan kunci yang dijelaskan dalam tataan hasil pertama.
Setiap baris kumpulan hasil pertama menjelaskan sepasang kunci: kunci enkripsi kolom terenkripsi, dan kunci master kolom (CMK) yang sesuai.
| Nama kolom | Jenis data | Deskripsi |
|---|---|---|
column_encryption_key_ordinal |
int | ID baris dalam hasil. |
database_id |
int | ID Database. |
column_encryption_key_id |
int | ID kunci enkripsi kolom. Catatan: ID ini menunjukkan baris dalam tampilan katalog sys.column_encryption_keys . |
column_encryption_key_version |
int | Disiapkan untuk penggunaan masa mendatang. Saat ini, selalu berisi 1. |
column_encryption_key_metadata_version |
biner(8) | Tanda waktu yang mewakili waktu pembuatan kunci enkripsi kolom. |
column_encryption_key_encrypted_value |
varbinary(4000) | Nilai terenkripsi dari kunci enkripsi kolom. |
column_master_key_store_provider_name |
nama sysname | Nama penyedia untuk penyimpanan kunci yang berisi CMK, yang digunakan untuk menghasilkan nilai terenkripsi kunci enkripsi kolom. |
column_master_key_path |
nvarchar(4000) | Jalur kunci CMK, yang digunakan untuk menghasilkan nilai terenkripsi dari kunci enkripsi kolom. |
column_encryption_key_encryption_algorithm_name |
nama sysname | Nama algoritma enkripsi yang digunakan untuk menghasilkan nilai enkripsi kunci enkripsi kolom. |
Setiap baris kumpulan hasil kedua berisi metadata enkripsi untuk satu parameter.
| Nama kolom | Jenis data | Deskripsi |
|---|---|---|
parameter_ordinal |
int | ID baris dalam tataan hasil. |
parameter_name |
nama sysname | Nama salah satu parameter yang ditentukan dalam argumen @params . |
column_encryption_algorithm |
kecil | Kode yang menunjukkan algoritma enkripsi yang dikonfigurasi untuk kolom yang sesuai dengan parameter. Nilai yang saat ini didukung adalah 2 untuk AEAD_AES_256_CBC_HMAC_SHA_256. |
column_encryption_type |
kecil | Kode yang menunjukkan jenis enkripsi yang dikonfigurasi untuk kolom, parameter sesuai dengan. Nilai yang didukung adalah:0 - teks biasa (kolom tidak dienkripsi)1 - enkripsi deterministik2 - Enkripsi acak. |
column_encryption_key_ordinal |
int | Kode baris dalam tataan hasil pertama. Baris yang direferensikan menjelaskan kunci enkripsi kolom yang dikonfigurasi untuk kolom, parameter sesuai dengan. |
column_encryption_normalization_rule_version |
kecil | Nomor versi algoritma normalisasi jenis. |
Keterangan
Driver klien SQL Server, yang mendukung Always Encrypted, secara otomatis memanggil sp_describe_parameter_encryption untuk mengambil metadata enkripsi untuk kueri berparameter yang dikeluarkan oleh aplikasi. Kemudian, driver menggunakan metadata enkripsi untuk mengenkripsi nilai parameter yang sesuai dengan kolom database yang dilindungi dengan Always Encrypted. Ini menggantikan nilai parameter teks biasa yang dikirimkan oleh aplikasi, dengan nilai parameter terenkripsi, sebelum mengirim kueri ke mesin database.
Izin
VIEW ANY COLUMN ENCRYPTION KEY DEFINITION Memerlukan izin dan VIEW ANY COLUMN MASTER KEY DEFINITION dalam database.
Contoh
Contoh berikut memotong nilai untuk ENCRYPTED_VALUE, untuk tujuan tampilan.
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';
Berikut adalah tataan hasil pertama:
| Kolom | Nilai |
|---|---|
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 |
Berikut adalah tataan hasil kedua:
| Kolom | Nilai |
|---|---|
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 |