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) участника также является частью процесса подписи.
Внимание! |
---|
Подписывание модуля следует использовать только для предоставления разрешений, но не для их запрещения или отмены. |
Сведения о подписях видимы в представлении каталога 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 г. |
|