ADD SIGNATURE (Transact-SQL)

Изменения: 17 июля 2006 г.

Добавляет цифровую подпись для хранимой процедуры, функции, сборки или триггера.

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

Синтаксис

ADD [ COUNTER ] SIGNATURE TO module_class::module_name 
    BY <crypto_list> [ ,...n ]

<crypto_list> ::=
    CERTIFICATE cert_name
    | CERTIFICATE cert_name [ WITH PASSWORD = 'password' ]
    | CERTIFICATE cert_name WITH SIGNATURE = signed_blob 
    | ASYMMETRIC KEY Asym_Key_Name
    | ASYMMETRIC KEY Asym_Key_Name [ WITH PASSWORD = 'password']
    | ASYMMETRIC KEY Asym_Key_Name WITH SIGNATURE = signed_blob

Аргументы

  • module_class
    Класс модуля, к которому добавляется подпись. По умолчанию для модулей области схемы это класс OBJECT.
  • module_name
    Имя хранимой процедуры, функции, сборки или триггера, для которых будет добавлена подпись или скрепляющая подпись.
  • CERTIFICATE cert_name
    Имя сертификата, который будет использован для добавления подписи или скрепляющей подписи для хранимой процедуры, функции, сборки или триггера.
  • WITH PASSWORD ='password'
    Пароль, необходимый для расшифровки закрытого ключа сертификата или асимметричного ключа. Это предложение необходимо, только когда закрытый ключ не защищен главным ключом базы данных.
  • SIGNATURE = signed_blob
    Указывает подписанный большой двоичный объект (BLOB) модуля. Это предложение полезно, если нужно передать модуль без передачи закрытого ключа. При использовании этого предложения необходимы только модуль, подпись и открытый ключ, чтобы добавить подписанный большой двоичный объект в базу данных. Аргумент signed_blob является двоичным объектом в шестнадцатеричном формате.
  • ASYMMETRIC KEY Asym_Key_Name
    Имя ассиметричного ключа, который будет использован для добавления подписи или скрепляющей подписи для хранимой процедуры, функции, сборки или триггера.

Замечания

Подписываемый модуль, сертификат или асимметричный ключ, использующиеся для подписи, должны существовать. Каждый символ в модуле включен в вычисление подписи. Сюда включены начальные символы возврата каретки и перевода строки.

Модуль может быть подписан любым числом сертификатов и асимметричных ключей.

Подпись модуля удаляется при изменении модуля.

Если модуль содержит предложение EXECUTE AS, это значит, что идентификатор безопасности (SID) участника также является частью процесса подписи.

ms181700.Caution(ru-ru,SQL.90).gifВнимание!
Подписывание модуля следует использовать только для предоставления разрешений, но не для их запрещения или отмены.

Сведения о подписях видимы в представлении каталога sys.crypt_properties.

Разрешения

Требуется разрешение ALTER для объекта и разрешение CONTROL для сертификата или асимметричного ключа. Если соответствующий закрытый ключ защищен паролем, то у пользователя также должен быть этот пароль.

Примеры

В следующем примере хранимая процедура HumanResources.uspUpdateEmployeeLogin подписывается сертификатом HumanResourcesDP.

USE AdventureWorks;
ADD SIGNATURE TO HumanResources.uspUpdateEmployeeLogin 
    BY CERTIFICATE HumanResourcesDP;
GO

См. также

Справочник

sys.crypt_properties (Transact-SQL)
DROP SIGNATURE (Transact-SQL)

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

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

Журнал изменений

Версия Журнал

17 июля 2006 г.

Измененное содержимое
  • Исправлены требования к разрешениям, добавлены сборки в список сущностей, подлежащих подписанию, и исправлен синтаксис.