Поделиться через


OPEN SYMMETRIC KEY (Transact-SQL)

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

Значок ссылки на разделСоглашения о синтаксисе в Transact-SQL

Синтаксис

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'

Аргументы

  • Key_name
    Имя симметричного ключа, который нужно открыть.
  • CERTIFICATE certificate_name
    Имя сертификата, закрытый ключ которого будет использоваться для расшифровки симметричного ключа.
  • ASYMMETRIC KEY asym_key_name
    Имя асимметричного ключа, закрытый ключ которого будет использоваться для расшифровки симметричного ключа.
  • WITH PASSWORD ='password'
    Пароль, который использовался для шифрования закрытого ключа сертификата или ассиметричного ключа.
  • SYMMETRIC KEY decrypting_key_name
    Имя симметричного ключа, который будет использоваться для расшифровки открываемого симметричного ключа.
  • PASSWORD ='password'
    Пароль, использованный для защиты симметричного ключа.

Замечания

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

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

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

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

Разрешения

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

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

Примеры

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

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

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

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

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

USE AdventureWorks;
-- 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 

См. также

Справочник

CREATE SYMMETRIC KEY (Transact-SQL)
ALTER SYMMETRIC KEY (Transact-SQL)
CLOSE SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL)

Другие ресурсы

Иерархия средств шифрования

Справка и поддержка

Получение помощи по SQL Server 2005