Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2016 (13.x) ve üzeri
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Always Encrypted özelliği kullanılarak korunan veritabanı sütunlarına karşılık gelen parametreleri belirlemek için belirtilen Transact-SQL deyimini ve parametrelerini analiz eder. Şifrelenmiş sütunlara karşılık gelen parametreler için şifreleme meta verilerini döndürür.
Sözdizimi
sp_describe_parameter_encryption
[ @tsql = ] N'tsql'
[ , [ @params = ] N'@parameter_name data_type [ , ... n ]' ]
[ ; ]
Bağımsız değişken
Önemli
Genişletilmiş saklı yordamlar için bağımsız değişkenler, Sözdizimi bölümünde açıklandığı gibi belirli bir sırada girilmelidir. Parametreler sıra dışı girilirse bir hata iletisi oluşur.
[ @tsql = ] 'tsql'
Bir veya daha fazla Transact-SQL deyimi. @tsqlnvarchar(n) veya nvarchar(max)olabilir.
[ @params = ] N'@parameter_namedata_type [ ,... n ]'
@params, @tsqlparametreleri için sp_executesql
benzer bir bildirim dizesi sağlar. Parametreler nvarchar(n) veya nvarchar(max) olabilir.
Transact-SQL_batch eklenmiş tüm parametrelerin tanımlarını içeren bir dize. Dize bir Unicode sabiti veya Unicode değişkeni olmalıdır. Her parametre tanımı bir parametre adından ve bir veri türünden oluşur.
n, ek parametre tanımlarını gösteren bir yer tutucudur.
n, ek parametre tanımlarını gösteren bir yer tutucudur. deyiminde belirtilen her parametre @paramsiçinde tanımlanmalıdır. deyimindeki Transact-SQL deyimi veya toplu işlemi parametre içermiyorsa @params gerekli değildir.
NULL
bu parametre için varsayılan değerdir.
Dönüş değeri
0
başarıyı gösterir. Diğer her şey başarısız olduğunu gösterir.
Sonuç kümesi
sp_describe_parameter_encryption
iki sonuç kümesi döndürür:
Veritabanı sütunları için yapılandırılmış şifreleme anahtarlarını açıklayan sonuç kümesi, belirtilen Transact-SQL deyiminin parametrelerine karşılık gelir.
Belirli parametrelerin nasıl şifrelenmesi gerektiğini açıklayan sonuç kümesi. Bu sonuç kümesi, ilk sonuç kümesinde açıklanan anahtarlara başvurur.
İlk sonuç kümesinin her satırı bir anahtar çiftini açıklar: şifrelenmiş sütun şifreleme anahtarı ve buna karşılık gelen sütun ana anahtarı (CMK).
Sütun adı | Veri tipi | Açıklama |
---|---|---|
column_encryption_key_ordinal |
int | Sonuç kümesindeki satırın kimliği. |
database_id |
int | Veritabanı Kimliği. |
column_encryption_key_id |
int | Sütun şifreleme anahtarı kimliği. Not: Bu kimliğinsys.column_encryption_keys katalog görünümünde bir satır gösterilir. |
column_encryption_key_version |
int | Gelecekte kullanmak üzere ayrılmıştır. Şu anda her zaman 1 içerir. |
column_encryption_key_metadata_version |
ikili (8) | Sütun şifreleme anahtarının oluşturma zamanını temsil eden bir zaman damgası. |
column_encryption_key_encrypted_value |
varbinary(4000) | Sütun şifreleme anahtarının şifrelenmiş değeri. |
column_master_key_store_provider_name |
sysname | Sütun şifreleme anahtarının şifrelenmiş değerini üretmek için kullanılan CMK'yi içeren anahtar deposu için sağlayıcının adı. |
column_master_key_path |
nvarchar(4000) | Sütun şifreleme anahtarının şifrelenmiş değerini üretmek için kullanılan CMK'nin anahtar yolu. |
column_encryption_key_encryption_algorithm_name |
sysname | Sütun şifreleme anahtarının şifreleme değerini üretmek için kullanılan şifreleme algoritmasının adı. |
İkinci sonuç kümesinin her satırı, bir parametre için şifreleme meta verilerini içerir.
Sütun adı | Veri tipi | Açıklama |
---|---|---|
parameter_ordinal |
int | Sonuç kümesindeki satırın kimliği. |
parameter_name |
sysname | @params bağımsız değişkeninde belirtilen parametrelerden birinin adı. |
column_encryption_algorithm |
tinyint | Parametrenin karşılık gelen sütunu için yapılandırılan şifreleme algoritmasını gösteren kod. Şu anda desteklenen değer AEAD_AES_256_CBC_HMAC_SHA_256 için 2 . |
column_encryption_type |
tinyint | Parametrenin karşılık gelen sütunu için yapılandırılan şifreleme türünü gösteren kod. Desteklenen değerler şunlardır:0 - düz metin (sütun şifrelenmez)1 - belirleyici şifreleme2 - rastgele şifreleme. |
column_encryption_key_ordinal |
int | İlk sonuç kümesindeki satırın kodu. Başvuruda bulunan satır, parametrenin karşılık gelen sütunu için yapılandırılan sütun şifreleme anahtarını açıklar. |
column_encryption_normalization_rule_version |
tinyint | Tür normalleştirme algoritmasının sürüm numarası. |
Açıklamalar
Always Encrypted'ı destekleyen bir SQL Server istemci sürücüsü, uygulama tarafından verilen parametreli sorgular için şifreleme meta verilerini almak üzere sp_describe_parameter_encryption
otomatik olarak çağırır. Ardından sürücü, Always Encrypted ile korunan veritabanı sütunlarına karşılık gelen parametrelerin değerlerini şifrelemek için şifreleme meta verilerini kullanır. Sorguyu veritabanı altyapısına göndermeden önce uygulama tarafından gönderilen düz metin parametre değerlerini şifrelenmiş parametre değerleriyle kullanır.
İzinler
Veritabanında VIEW ANY COLUMN ENCRYPTION KEY DEFINITION
ve VIEW ANY COLUMN MASTER KEY DEFINITION
izinlerini gerekli kılar.
Örnekler
Aşağıdaki örnek, görüntüleme amacıyla ENCRYPTED_VALUE
değerini kesmektedir.
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';
İlk sonuç kümesi aşağıdadır:
Sütun | Değer |
---|---|
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 |
İkinci sonuç kümesi aşağıdadır:
Sütun | Değer |
---|---|
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 |
İlgili içerik
- Always Encrypted
- Always Encrypted kullanarak uygulama geliştirme