ADD SIGNATURE (Transact-SQL)

Data aggiornamento: 17 luglio 2006

Aggiunge una firma digitale a una stored procedure, una funzione, un assembly o un trigger.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

  • module_class
    Classe del modulo a cui viene aggiunta la firma. L'impostazione predefinita per i moduli definiti a livello di ambito dello schema è OBJECT.
  • module_name
    Nome di una stored procedure, una funzione, un assembly o un trigger da firmare o controfirmare.
  • CERTIFICATE cert_name
    Nome di un certificato con cui firmare o controfirmare la stored procedure, la funzione, l'assembly o il trigger.
  • WITH PASSWORD ='password'
    Password necessaria per decrittografare la chiave privata del certificato o della chiave asimmetrica. Questa clausola è necessaria solo se la chiave privata non è protetta tramite la chiave master del database.
  • SIGNATURE = signed_blob
    Specifica l'oggetto BLOB (Binary Large Object) firmato del modulo. Questa clausola risulta utile se si desidera fornire un modulo senza fornire la chiave privata. Se si utilizza questa clausola, sono necessari solo il modulo, la firma e la chiave pubblica per aggiungere l'oggetto BLOB firmato a un database. signed_blob è l'oggetto BLOB in formato esadecimale.
  • ASYMMETRIC KEY Asym_Key_Name
    Nome di una chiave asimmetrica con cui firmare o controfirmare la stored procedure, la funzione, l'assembly o il trigger.

Osservazioni

Il modulo che viene firmato o controfirmato e il certificato o la chiave asimmetrica utilizzati per la firma devono esistere già. Ogni carattere del modulo è utilizzato nel calcolo della firma, inclusi gli avanzamenti di riga e i ritorni a capo iniziali.

Un modulo può essere firmato e controfirmato da un numero qualsiasi di certificati e chiavi simmetriche.

La firma di un modulo viene eliminata se il modulo viene modificato.

Se un modulo contiene una clausola EXECUTE AS, nel processo di firma viene incluso anche l'ID di protezione (SID) dell'entità.

ms181700.Caution(it-it,SQL.90).gifAttenzione:
È consigliabile utilizzare la firma del modulo solo per concedere le autorizzazioni, mai per negarle o revocarle.

Le informazioni sulle firme sono visibili nella vista del catalogo sys.crypt_properties.

Autorizzazioni

Sono richieste l'autorizzazione ALTER per l'oggetto e l'autorizzazione CONTROL per il certificato o la chiave asimmetrica. Se una chiave privata associata è protetta tramite una password, è necessario che anche l'utente disponga della password.

Esempi

Nell'esempio seguente la stored procedure HumanResources.uspUpdateEmployeeLogin viene firmata tramite il certificato HumanResourcesDP.

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

Vedere anche

Riferimento

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

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

17 luglio 2006

Contenuto modificato:
  • Correzione delle autorizzazioni richieste, aggiunta degli assembly all'elenco delle entità che è possibile firmare e correzione della sintassi.