CREATE SYMMETRIC KEY (Transact-SQL)
更新 : 2008 年 11 月 17 日
対称キーを生成し、プロパティを指定します。
構文
CREATE SYMMETRIC KEY key_name [ AUTHORIZATION owner_name ]
WITH <key_options> [ , ... n ]
ENCRYPTION BY <encrypting_mechanism> [ , ... n ]
<encrypting_mechanism> ::=
CERTIFICATE certificate_name
|
PASSWORD = 'password'
|
SYMMETRIC KEY symmetric_key_name
|
ASYMMETRIC KEY asym_key_name
<key_options> ::=
KEY_SOURCE = 'pass_phrase'
|
ALGORITHM = <algorithm>
|
IDENTITY_VALUE = 'identity_phrase'
<algorithm> ::=
DES | TRIPLE_DES | RC2 | RC4 | RC4_128
| DESX | AES_128 | AES_192 | AES_256
引数
- key_name
データベースで認識される対称キーの一意な名前を指定します。一時キーの名前は、シャープ (#) 記号で始める必要があります。たとえば、#temporaryKey900007 のように指定します。2 つ以上の # で始まる名前の対称キーは作成できません。
- AUTHORIZATION owner_name
対称キーを所有するデータベース ユーザーまたはアプリケーション ロールの名前を指定します。
- certificate_name
対称キーの暗号化に使用する証明書の名前を指定します。証明書はデータベース内に存在する必要があります。
- 'password'
対称キーを保護する TRIPLE_DES キーの派生元パスワードを指定します。パスワードの複雑性が確認されます。複雑なパスワードの使用をお勧めします。
- symmetric_key_name
作成するキーの暗号化に使用する対称キーを指定します。指定したキーはデータベース内に存在し、開かれている必要があります。
- asym_key_name
作成するキーの暗号化に使用する非対称キーを指定します。この非対称キーはデータベース内に存在する必要があります。
- KEY_SOURCE ='pass_phrase'
キーの派生元のパスフレーズを指定します。
- IDENTITY_VALUE ='identity_phrase'
一時キーで暗号化されるタグ付けデータの GUID の生成元となる ID 句を指定します。
解説
対称キーを作成するときには、証明書、パスワード、対称キー、非対称キーのうち少なくとも 1 つを使用して対称キーを暗号化する必要があります。キーには種類ごとの暗号化を複数指定できます。つまり、1 つの対称キーを、複数の証明書、パスワード、対称キー、および非対称キーを使用して同時に暗号化できます。
注意 : |
---|
データベースのマスタ キーの公開キーではなく、パスワードを使用して対称キーを暗号化する場合は、TRIPLE_DES 暗号化アルゴリズムが使用されます。このため、AES など、複雑な暗号化アルゴリズムで作成されたキーの場合、キー自身はそれより弱いアルゴリズムで保護されます。 |
キーを複数のユーザーに配布する前に、追加パスワードを使用して対称キーを暗号化できます。
一時キーは、そのキーを作成したユーザーが所有します。また一時キーは、現在のセッションでのみ有効です。
IDENTITY_VALUE では、新しい対称キーで暗号化されるデータをタグ付けするための GUID が生成されます。このタグ付けは、キーと暗号化データの照合に使用できます。特定の句で生成された GUID は常に同じになります。句を使用して GUID を生成した後は、句に関連付けられている対称キーが削除されるまで、現在のセッションで同じ句を再度使用することはできません。IDENTITY_VALUE は省略可能な句ですが、一時キーで暗号化したデータを保存する場合はこの句を使用することをお勧めします。
既定の暗号化アルゴリズムはありません。
重要 : |
---|
重要なデータの保護には RC4 および RC4_128 ストリーム暗号を使用しないことをお勧めします。SQL Server 2005 ではこうしたキーで実行される暗号化に salt を使用しません。 |
対称キーに関する情報は、sys.symmetric_keys カタログ ビューで確認できます。
DES アルゴリズムに関する説明 :
- DESX は不適切な名前でした。ALGORITHM = DESX を使用して作成された対称キーでは、実際には 192 ビット キーを使用した TRIPLE DES 暗号が使用されます。DESX アルゴリズムは提供されません。
- ALGORITHM = TRIPLE_DES を使用して作成された対称キーでは、128 ビット キーを使用した TRIPLE DES が使用されます。
権限
データベースに対する ALTER ANY SYMMETRIC KEY 権限が必要です。AUTHORIZATION を指定する場合は、データベース ユーザーに対する IMPERSONATE 権限、またはアプリケーション ロールに対する ALTER 権限が必要です。証明書または非対称キーを使って暗号化する場合は、証明書または非対称キーに対する VIEW DEFINITION 権限が必要です。
例
A. 対称キーを作成する
次の例では、AES 256
アルゴリズムを使用して対称キー JanainaKey09
を作成し、新しいキーを証明書 Shipping04
を使用して暗号化します。
CREATE SYMMETRIC KEY JanainaKey09 WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE Shipping04;
GO
B. 一時対称キーを作成する
次の例では、パスフレーズ The square of the hypotenuse is equal to the sum of the squares of the sides
から、一時対称キー #MarketingXXV
を作成します。このキーには文字列 Pythagoras
から生成された GUID が与えられ、証明書 Marketing25
を使用して暗号化されます。
CREATE SYMMETRIC KEY #MarketingXXV
WITH ALGORITHM = AES_128,
KEY_SOURCE
= 'The square of the hypotenuse is equal to the sum of the squares of the sides',
IDENTITY_VALUE = 'Pythagoras'
ENCRYPTION BY CERTIFICATE Marketing25;
GO
参照
関連項目
ALTER SYMMETRIC KEY (Transact-SQL)
DROP SYMMETRIC KEY (Transact-SQL)
sys.symmetric_keys (Transact-SQL)
その他の技術情報
ヘルプおよび情報
変更履歴
リリース | 履歴 |
---|---|
2005 年 12 月 5 日 |
|
2008 年 11 月 17 日 |
|