ALTER SYMMETRIC KEY (Transact-SQL)

対称キーのプロパティを変更します。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

ALTER SYMMETRIC KEY Key_name <alter_option>

<alter_option> ::=
   ADD ENCRYPTION BY <encrypting_mechanism> [ , ... n ]
   | 
   DROP ENCRYPTION BY <encrypting_mechanism> [ , ... n ]
<encrypting_mechanism> ::=
   CERTIFICATE certificate_name
   |
   PASSWORD = 'password'
   |
   SYMMETRIC KEY Symmetric_Key_Name
   |
   ASYMMETRIC KEY Asym_Key_Name

引数

  • Key_name
    変更する対称キーの、データベースで認識される名前を指定します。

  • ADD ENCRYPTION BY
    指定の方法による暗号化を追加します。

  • DROP ENCRYPTION BY
    指定の方法による暗号化を削除します。対称キーからすべての暗号化を削除することはできません。

  • CERTIFICATE Certificate_name
    対称キーの暗号化に使用されている証明書を指定します。この証明書はデータベース内に存在する必要があります。

  • PASSWORD ='password'
    対称キーの暗号化に使用されるパスワードを指定します。password は、SQL Server のインスタンスを実行しているコンピュータの Windows パスワード ポリシーの要件を満たす必要があります。

  • SYMMETRIC KEY Symmetric_Key_Name
    変更する対称キーの暗号化に使用されている対称キーを指定します。この対称キーはデータベースに存在し、開かれている必要があります。

  • ASYMMETRIC KEY Asym_Key_Name
    変更する対称キーの暗号化に使用されている非対称キーを指定します。この非対称キーはデータベース内に存在する必要があります。

説明

注記注意

データベースのマスタ キーの公開キーではなく、パスワードを使用して対称キーを暗号化する場合は、TRIPLE_DES 暗号化アルゴリズムが使用されます。このため、AES など、強力な暗号化アルゴリズムで作成されたキーでも、キー自身はそれより弱いアルゴリズムで保護されます。

対称キーの暗号化を変更するには、ADD ENCRYPTION および DROP ENCRYPTION 句を使用します。キーからすべての暗号化を削除することはできません。このため、古い形式の暗号化を削除する前には、新しい形式の暗号化を追加してください。

対称キーの所有者を変更するには、ALTER AUTHORIZATION を使用します。

権限

対称キーに対する ALTER 権限が必要です。証明書または非対称キーを使って暗号化を追加する場合は、証明書または非対称キーに対する VIEW DEFINITION 権限が必要です。証明書または非対称キーを使って暗号化を削除する場合は、証明書または非対称キーに対する CONTROL 権限が必要です。

次の例では、対称キーの保護に使用されている暗号化の方法を変更します。対称キー JanainaKey043 は、作成時に証明書 Shipping04 を使用して暗号化されています。暗号化なしでキーを格納することはできないため、この例では、パスワードによる暗号化を追加した後、証明書による暗号化を削除します。

CREATE SYMMETRIC KEY JanainaKey043 WITH ALGORITHM = AES_256 
    ENCRYPTION BY CERTIFICATE Shipping04;
-- Open the key. 
OPEN SYMMETRIC KEY JanainaKey043 DECRYPTION BY CERTIFICATE Shipping04
    WITH PASSWORD = '<enterStrongPasswordHere>'; 
-- First, encrypt the key with a password.
ALTER SYMMETRIC KEY JanainaKey043 
    ADD ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>';
-- Now remove encryption by the certificate.
ALTER SYMMETRIC KEY JanainaKey043 
    DROP ENCRYPTION BY CERTIFICATE Shipping04;
CLOSE SYMMETRIC KEY JanainaKey043;