共用方式為


ADD SIGNATURE (Transact-SQL)

更新: 2006 年 7 月 17 日

將數位簽章加入至預存程序、函數、組件或觸發程序。

主題連結圖示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 是十六進位格式的 Blob 本身。
  • ASYMMETRIC KEY Asym_Key_Name
    這是用來預存程序、函數、組件或觸發程序要簽署或反簽署的非對稱金鑰名稱。

備註

簽署或反簽署的模組及用來簽署的憑證或非對稱金鑰必須已存在。模組中的每個字元都會包含在簽章計算中。這包括開頭的歸位字元和換行字元。

可用任何數目的憑證和非對稱金鑰來簽署和反簽署模組。

當模組變更時,會卸除模組的簽章。

如果模組包含 EXECUTE AS 子句,則主體的安全性識別碼 (SID) 也會併入成為簽署程序的一部分。

ms181700.Caution(zh-tw,SQL.90).gif注意:
模組簽署只能用來授與權限,絕對不能用來拒絕或撤銷權限。

您可以在 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)

說明及資訊

取得 SQL Server 2005 協助

變更歷程記錄

版本 歷程記錄

2006 年 7 月 17 日

變更的內容:
  • 更正權限需求、在可簽章實體清單中加入組件,以及更正語法。