CREATE ASYMMETRIC KEY (Transact-SQL)
データベースに非対称キーを作成します。
構文
CREATE ASYMMETRIC KEY Asym_Key_Name
[ AUTHORIZATION database_principal_name ]
{
FROM <Asym_Key_Source>
|
WITH ALGORITHM = { RSA_512 | RSA_1024 | RSA_2048 }
}
[ ENCRYPTION BY PASSWORD = 'password' ]
<Asym_Key_Source>::=
FILE = 'path_to_strong-name_file'
|
EXECUTABLE FILE = 'path_to_executable_file'
|
ASSEMBLY Assembly_Name
引数
- FROM Asym_Key_Source
非対称キー ペアの読み込み元を指定します。
- AUTHORIZATION database_principal_name
非対称キーの所有者を指定します。所有者にロールとグループは指定できません。このオプションを省略した場合、所有者は現在のユーザーになります。
- FILE ='path_to_strong-name_file'
キー ペアの読み込み元となる、厳密な名前のファイルのパスを指定します。
- EXECUTABLE FILE ='path_to_executable_file'
公開キーの読み込み元となる、アセンブリ ファイルを指定します。
- ASSEMBLY Assembly_Name
公開キーの読み込み元となる、アセンブリの名前を指定します。
- ENCRYPTION BY PASSWORD ='password'
秘密キーを暗号化するパスワードを指定します。この句がない場合、秘密キーはデータベースのマスタ キーで暗号化されます。password は最大 128 文字です。
解説
非対称キーは、データベース レベルのセキュリティ保護可能なエンティテイです。既定の形式では、このエンティティには公開キーと秘密キーの両方が含まれます。FROM 句を使用せずに CREATE ASYMMETRIC KEY を実行した場合は、新しいキー ペアが作成されます。FROM 句を使用して CREATE ASYMMETRIC KEY を実行した場合は、キー ペアがファイルからインポートされるか、公開キーがアセンブリからインポートされます。
既定では、秘密キーはデータベースのマスタ キーによって保護されます。データベースのマスタ キーが作成されていない場合、秘密キーを保護するにはパスワードが必要です。データベースのマスタ キーが存在する場合、パスワードは省略可能です。
秘密キーは、512、1,024、または 2,048 ビットの長さで指定できます。
権限
データベースに対する CREATE ASYMMETRIC KEY 権限が必要です。AUTHORIZATION 句を指定する場合は、データベース プリンシパルに対する IMPERSONATE 権限、またはアプリケーション ロールに対する ALTER 権限が必要です。
例
A. 非対称キーを作成する
次の例では、RSA_2048
アルゴリズムを使用して PacificSales09
という非対称キーを作成し、パスワードで秘密キーを保護します。
CREATE ASYMMETRIC KEY PacificSales09
WITH ALGORITHM = RSA_2048
ENCRYPTION BY PASSWORD = 'bmsA$dk7i82bv55foajsd9764';
GO
B. 非対称キーをファイルから作成し、ユーザーを認証する
次の例では、ファイルに格納されたキー ペアから非対称キー PacificSales19
を作成し、ユーザー SyedAbbas
がその非対称キーを使用することを認証します。
CREATE ASYMMETRIC KEY PacificSales19 AUTHORIZATION SyedAbbas
FROM FILE = ' c:\PacSales\Managers\SyedAbbasCerts.tmp'
ENCRYPTION BY PASSWORD = '35698ofg0sjlkfLKJ4548872$$$2';
GO
参照
関連項目
ALTER ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)