ADD SIGNATURE (Transact-SQL)
Aktualisiert: 17. Juli 2006
Fügt einer gespeicherten Prozedur, einer Funktion, einer Assembly oder einem Trigger eine digitale Signatur hinzu.
Transact-SQL-Syntaxkonventionen
Syntax
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
Argumente
- module_class
Die Klasse des Moduls, dem die Signatur hinzugefügt wird. Der Standard für Module, die Schemas als Bereiche besitzen, ist OBJECT.
- module_name
Der Name einer gespeicherten Prozedur, einer Funktion, einer Assembly oder eines Triggers, die bzw. der signiert oder gegensigniert werden soll.
- CERTIFICATE cert_name
Der Name eines Zertifikats, mit dem die gespeicherte Prozedur, die Funktion, die Assembly oder der Trigger signiert oder gegensigniert werden soll.
- WITH PASSWORD ='password'
Das Kennwort, das zum Entschlüsseln des privaten Schlüssels des Zertifikats oder asymmetrischen Schlüssels erforderlich ist. Diese Klausel ist nur erforderlich, wenn der private Schlüssel nicht durch den Hauptschlüssel für die Datenbank geschützt ist.
- SIGNATURE = signed_blob
Gibt das signierte BLOB-Element des Moduls an. Diese Klausel ist hilfreich, wenn Sie ein Modul ohne den privaten Schlüssel versenden möchten. Bei Verwendung dieser Klausel sind nur das Modul, die Signatur und der öffentliche Schlüssel erforderlich, um das signierte BLOB-Element für eine Datenbank zu signieren. Bei signed_blob handelt es sich um das BLOB-Element selbst im Hexadezimalformat.
- ASYMMETRIC KEY Asym_Key_Name
Der Name eines asymmetrischen Schlüssels, mit dem die gespeicherte Prozedur, die Funktion, die Assembly oder der Trigger signiert oder gegensigniert werden soll.
Hinweise
Das Modul, das signiert oder gegensigniert wird, und das Zertifikat oder der asymmetrische Schlüssel, das bzw. der zum Signieren verwendet wird, müssen bereits vorhanden sein. Jedes Zeichen im Modul ist in der Signaturberechnung enthalten. Hierzu gehören auch führende Wagenrückläufe und Zeilenvorschübe.
Ein Modul kann mit einer beliebigen Anzahl von Zertifikaten und asymmetrischen Schlüsseln signiert oder gegensigniert werden.
Die Signatur eines Moduls wird bei Änderung des Moduls gelöscht.
Wenn ein Modul eine EXECUTE AS-Klausel enthält, ist auch die Sicherheits-ID (SID) des Prinzipals im Signierungsvorgang enthalten.
Vorsicht: |
---|
Das Signieren von Modulen sollte nur zum Erteilen von Berechtigungen erfolgen, nie zum Verweigern oder Aufheben von Berechtigungen. |
Informationen zu Signaturen werden in der sys.crypt_properties-Katalogsicht angezeigt.
Berechtigungen
Erfordert die ALTER-Berechtigung für das Objekt und die CONTROL-Berechtigung für das Zertifikat oder den asymmetrischen Schlüssel. Falls ein zugeordneter privater Schlüssel mit einem Kennwort geschützt ist, muss der Benutzer zudem das Kennwort kennen.
Beispiele
Im folgenden Beispiel wird die gespeicherte Prozedur HumanResources.uspUpdateEmployeeLogin
mit dem Zertifikat HumanResourcesDP
signiert.
USE AdventureWorks;
ADD SIGNATURE TO HumanResources.uspUpdateEmployeeLogin
BY CERTIFICATE HumanResourcesDP;
GO
Siehe auch
Verweis
sys.crypt_properties (Transact-SQL)
DROP SIGNATURE (Transact-SQL)
Hilfe und Informationen
Informationsquellen für SQL Server 2005
Änderungsverlauf
Version | Verlauf |
---|---|
17. Juli 2006 |
|