ALTER ASYMMETRIC KEY (Transact-SQL)
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Microsoft Fabric SQL Database
非対称キーのプロパティを変更します。
注意
この構文は、Azure Synapse Analytics のサーバーレス SQL プールでサポートされていません。
構文
ALTER ASYMMETRIC KEY Asym_Key_Name <alter_option>
<alter_option> ::=
<password_change_option>
| REMOVE PRIVATE KEY
<password_change_option> ::=
WITH PRIVATE KEY ( <password_option> [ , <password_option> ] )
<password_option> ::=
ENCRYPTION BY PASSWORD = 'strongPassword'
| DECRYPTION BY PASSWORD = 'oldPassword'
引数
Asym_Key_Name
データベースで認識される非対称キーの名前を指定します。
REMOVE PRIVATE KEY
非対称キーから秘密キーを削除します。公開キーは削除されません。
WITH PRIVATE KEY
秘密キーの保護を変更します。
ENCRYPTION BY PASSWORD ='strongPassword'
秘密キーを保護するための新しいパスワードを指定します。 password は、Windows のパスワード ポリシーが SQL Server のインスタンスを実行するコンピューターに要求する条件を満足する必要があります。 このオプションを省略した場合、秘密キーはデータベースのマスター キーで暗号化されます。
DECRYPTION BY PASSWORD ='oldPassword'
現在秘密キーが保護されている、古いパスワードを指定します。 秘密キーがデータベースのマスター キーで暗号化されている場合は指定する必要はありません。
解説
データベースのマスター キーがない場合は、ENCRYPTION BY PASSWORD オプションを指定する必要があります。パスワードを指定しないと、この操作は失敗します。 データベースのマスター キーを作成する方法の詳細については、「CREATE MASTER KEY (Transact-SQL)」を参照してください。
秘密キーの保護を変更するには、ALTER ASYMMETRIC KEY を使用して、PRIVATE KEY オプションを次のように指定します。
保護の変更対象 | ENCRYPTION BY PASSWORD | DECRYPTION BY PASSWORD |
---|---|---|
古いパスワードから新しいパスワードへ | 必須 | 必須 |
パスワードからマスター キーへ | [省略] | 必須 |
マスター キーからパスワードへ | 必須 | [省略] |
データベースのマスター キーを秘密キーの保護に使用するには、マスター キーを先に開いておく必要があります。 詳細については、「OPEN MASTER KEY (Transact-SQL)」を参照してください。
非対称キーの所有権を変更するには、ALTER AUTHORIZATION を使用します。
アクセス許可
秘密キーを削除する場合、非対称キーに対する CONTROL 権限が必要です。
例
A. 秘密キーのパスワードを変更する
次の例では、非対称キー PacificSales09
の秘密キーの保護に使用するパスワードを変更します。 新しいパスワードは <enterStrongPasswordHere>
です。
ALTER ASYMMETRIC KEY PacificSales09
WITH PRIVATE KEY (
DECRYPTION BY PASSWORD = '<oldPassword>',
ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>');
GO
B. 非対称キーから秘密キーを削除する
次の例では、PacificSales19
から秘密キーを削除し、公開キーだけを残します。
ALTER ASYMMETRIC KEY PacificSales19 REMOVE PRIVATE KEY;
GO
C. 秘密キーからパスワード保護を削除する
次の例では、秘密キーからパスワード保護を削除し、データベースのマスター キーで保護します。
OPEN MASTER KEY DECRYPTION BY PASSWORD = '<database master key password>';
ALTER ASYMMETRIC KEY PacificSales09 WITH PRIVATE KEY (
DECRYPTION BY PASSWORD = '<enterStrongPasswordHere>' );
GO
参照
CREATE ASYMMETRIC KEY (Transact-SQL)
DROP ASYMMETRIC KEY (Transact-SQL)
SQL Server とデータベースの暗号化キー (データベース エンジン)
暗号化階層
CREATE MASTER KEY (Transact-SQL)
OPEN MASTER KEY (Transact-SQL)
拡張キー管理 (EKM)