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 はそれ自体 16 進数形式の BLOB です。
- ASYMMETRIC KEY Asym_Key_Name
ストアド プロシージャ、関数、アセンブリ、またはトリガの署名または副署名に使用する非対称キーの名前を指定します。
解説
署名または副署名されるモジュールと、署名に使用する証明書または非対称キーは、あらかじめ存在している必要があります。署名の確認で、モジュールのすべての文字が確認されます。これには、先頭のキャリッジ リターンとライン フィードも含まれます。
モジュールには、任意の数の証明書と非対称キーを使用して署名や副署名を行うことができます。
モジュールが変更された場合、モジュールの署名は削除されます。
モジュールに EXECUTE AS 句が含まれる場合、署名の処理の一部としてプリンシパルのセキュリティ ID (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)
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2006 年 7 月 17 日 |
|