OPEN SYMMETRIC KEY (Transact-SQL)

Область применения:SQL ServerБаза данных SQL AzureУправляемый экземпляр SQL AzureAzure Synapse AnalyticsБаза данных SQL в Microsoft Fabric

Расшифровывает симметричный ключ и делает его доступным для использования.

Соглашения о синтаксисе Transact-SQL

Note

Этот синтаксис не поддерживается бессерверным пулом SQL в Azure Synapse Analytics.

Syntax

OPEN SYMMETRIC KEY Key_name DECRYPTION BY <decryption_mechanism>  
  
<decryption_mechanism> ::=  
    CERTIFICATE certificate_name [ WITH PASSWORD = 'password' ]  
    |  
    ASYMMETRIC KEY asym_key_name [ WITH PASSWORD = 'password' ]  
    |  
    SYMMETRIC KEY decrypting_Key_name  
    |  
    PASSWORD = 'decryption_password'  

Arguments

Key_name
Имя симметричного ключа, который нужно открыть.

CERTIFICATE certificate_name
Имя сертификата, закрытый ключ которого будет использоваться для расшифровки симметричного ключа.

ASYMMETRIC KEY asym_key_name
Имя асимметричного ключа, закрытый ключ которого будет использоваться для расшифровки симметричного ключа.

С ПАРОЛЕМ = 'пароль'
Пароль, который использовался для шифрования закрытого ключа сертификата или асимметричного ключа.

SYMMETRIC KEY decrypting_key_name
Имя симметричного ключа, который будет использоваться для расшифровки открываемого симметричного ключа.

PASSWORD ='password'
Пароль, использовавшийся для защиты симметричного ключа.

Remarks

Открытые симметричные ключи привязаны к сеансу, а не к контексту безопасности. Открытый ключ останется доступным, пока не будет явно закрыт или сеанс не будет прерван. Если открыт симметричный ключ, после чего произошло переключение контекста, ключ останется открытым и будет доступным в олицетворенном контексте. Одновременно можно открыть несколько ключей. Сведения о симметричных ключах доступны в представлении каталога sys.openkeys (Transact-SQL).

Если симметричный ключ был зашифрован другим ключом, сначала необходимо открыть этот ключ.

Если симметричный ключ уже открыт, то запрос является запросом NO_OP.

Если пароль, сертификат или ключ для расшифровки симметричного ключа неверен, запрос завершается сбоем.

Симметричные ключи, созданные из поставщиков шифрования, не могут быть открыты. Операции шифрования и расшифровки, для которых используется симметричный ключ этого типа, выполняются успешно без инструкции OPEN, поскольку открытие и закрытие ключа осуществляется поставщиком шифрования.

Permissions

Звонящий должен иметь разрешение на ключ и не должен быть лишён VIEW разрешения DEFINITION на ключе. Дополнительные требования зависят от механизма расшифровки:

  • РАСШИФРОВКА CERTIFICATE: Контроль разрешения на сертификат и знание пароля, шифрующего его приватный ключ.

  • РАСШИФРОВКА : ASYMMETRIC KEYКонтроль разрешения на асимметричный ключ и знание пароля, шифрующего его приватный ключ.

  • DECRYPTION BY PASSWORD: знание одного из паролей, использованного для шифрования симметричного ключа.

Examples

A. Открытие симметричного ключа с помощью сертификата

Следующий пример иллюстрирует открытие симметричного ключа SymKeyMarketing3 и его расшифровку с помощью закрытого ключа сертификата MarketingCert9.

USE AdventureWorks2022;  
OPEN SYMMETRIC KEY SymKeyMarketing3   
    DECRYPTION BY CERTIFICATE MarketingCert9;  
GO  

B. Открытие симметричного ключа с помощью другого симметричного ключа

Следующий пример иллюстрирует открытие симметричного ключа MarketingKey11 и его расшифровку с помощью симметричного ключа HarnpadoungsatayaSE3.

USE AdventureWorks2022;  
-- First open the symmetric key that you want for decryption.  
OPEN SYMMETRIC KEY HarnpadoungsatayaSE3   
    DECRYPTION BY CERTIFICATE sariyaCert01;  
-- Use the key that is already open to decrypt MarketingKey11.  
OPEN SYMMETRIC KEY MarketingKey11   
    DECRYPTION BY SYMMETRIC KEY HarnpadoungsatayaSE3;  
GO