ADD SIGNATURE (Transact-SQL)
更新: 2006 年 7 月 17 日
將數位簽章加入至預存程序、函數、組件或觸發程序。
語法
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 是十六進位格式的 Blob 本身。
- ASYMMETRIC KEY Asym_Key_Name
這是用來預存程序、函數、組件或觸發程序要簽署或反簽署的非對稱金鑰名稱。
備註
簽署或反簽署的模組及用來簽署的憑證或非對稱金鑰必須已存在。模組中的每個字元都會包含在簽章計算中。這包括開頭的歸位字元和換行字元。
可用任何數目的憑證和非對稱金鑰來簽署和反簽署模組。
當模組變更時,會卸除模組的簽章。
如果模組包含 EXECUTE AS 子句,則主體的安全性識別碼 (SID) 也會併入成為簽署程序的一部分。
![]() |
---|
模組簽署只能用來授與權限,絕對不能用來拒絕或撤銷權限。 |
您可以在 sys.crypt_properties 目錄檢視中,看到有關簽章的資訊。
權限
需要物件的 ALTER 權限,以及憑證或非對稱金鑰的 CONTROL 權限。如果相關聯的私密金鑰受到密碼保護,則使用者也必須有密碼。
範例
下列範例以 HumanResourcesDP
憑證簽署預存程序 HumanResources.uspUpdateEmployeeLogin
。
USE AdventureWorks;
ADD SIGNATURE TO HumanResources.uspUpdateEmployeeLogin
BY CERTIFICATE HumanResourcesDP;
GO
請參閱
參考
sys.crypt_properties (Transact-SQL)
DROP SIGNATURE (Transact-SQL)
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2006 年 7 月 17 日 |
|