プライマリ・コンテンツに移動
Oracle® Database SQL言語リファレンス
12cリリース1 (12.1)
B71278-13
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

ADMINISTER KEY MANAGEMENT

用途

ADMINISTER KEY MANAGEMENT文は、透過的データ暗号化のための統合されたキー管理インタフェースを提供します。この文は、次の目的に使用できます。

  • ソフトウェア・キーストアおよびハードウェア・キーストアの管理

  • 暗号化キーの管理

  • シークレットの管理

前提条件

ADMINISTER KEY MANAGEMENTシステム権限、またはSYSKMシステム権限が必要です。

CONTAINER句を指定する場合は、マルチテナント・コンテナ・データベース(CDB)に接続している必要があります。CONTAINER = ALLを指定するには、現在のコンテナがルートである必要があります。また、共通に付与されているADMINISTER KEY MANAGEMENTまたはSYSKM権限が必要です。

構文

administer_key_management::=

administer_key_management.gifの説明が続きます。
図administer_key_management.gifの説明

(keystore_management_clauses::=, key_management_clauses::=, secret_management_clauses::=)

keystore_management_clauses::=

keystore_management_clauses.gifの説明が続きます。
図keystore_management_clauses.gifの説明

(create_keystore::=, open_keystore::=, close_keystore, backup_keystore::=, alter_keystore_password::=, merge_into_new_keystore::=, merge_into_exist_keystore::=)

create_keystore::=

create_keystore.gifの説明が続きます。
図create_keystore.gifの説明

open_keystore::=

open_keystore.gifの説明が続きます。
図open_keystore.gifの説明

close_keystore

close_keystore.gifの説明が続きます。
図close_keystore.gifの説明

backup_keystore::=

backup_keystore.gifの説明が続きます。
図backup_keystore.gifの説明

alter_keystore_password::=

alter_keystore_password.gifの説明が続きます。
図alter_keystore_password.gifの説明

merge_into_new_keystore::=

merge_into_new_keystore.gifの説明が続きます。
図merge_into_new_keystore.gifの説明

merge_into_exist_keystore::=

merge_into_exist_keystore.gifの説明が続きます。
図merge_into_exist_keystore.gifの説明

key_management_clauses::=

key_management_clauses.gifの説明が続きます。
図key_management_clauses.gifの説明

(set_key::=create_key::=use_key::=set_key_tag::=export_keys::=import_keys::=migrate_key::=reverse_migrate_key::=を参照)

set_key::=

set_key.gifの説明が続きます。
図set_key.gifの説明

create_key::=

create_key.gifの説明が続きます。
図create_key.gifの説明

use_key::=

use_key.gifの説明が続きます。
図use_key.gifの説明

set_key_tag::=

set_key_tag.gifの説明が続きます。
図set_key_tag.gifの説明

export_keys::=

export_keys.gifの説明が続きます。
図export_keys.gifの説明

import_keys::=

import_keys.gifの説明が続きます。
図import_keys.gifの説明

migrate_key::=

migrate_key.gifの説明が続きます。
図migrate_key.gifの説明

reverse_migrate_key::=

reverse_migrate_key.gifの説明が続きます。
図reverse_migrate_key.gifの説明

secret_management_clauses::=

secret_management_clauses.gifの説明が続きます。
図secret_management_clauses.gifの説明

(add_update_secret::=delete_secret::=を参照)

add_update_secret::=

add_update_secret.gifの説明が続きます。
図add_update_secret.gifの説明

delete_secret::=

delete_secret.gifの説明が続きます。
図delete_secret.gifの説明

セマンティクス

keystore_management_clauses

これらの句を使用して、次のキーストア管理操作を実行できます。

  • ソフトウェア・キーストアの作成

  • ソフトウェア・キーストアまたはハードウェア・キーストアのオープンとクローズ

  • パスワードベースのソフトウェア・キーストアのバックアップ

  • パスワードベースのソフトウェア・キーストアのパスワードの変更

  • 2つの既存のソフトウェア・キーストアの、新しいパスワードベース・ソフトウェア・キーストアへのマージ

  • 1つの既存のソフトウェア・キーストアの、既存のパスワードベース・ソフトウェア・キーストアへのマージ

create_keystore

この句を使用して、パスワードベースのソフトウェア・キーストアと自動ログイン・ソフトウェア・キーストアの2種類のソフトウェア・キーストアを作成できます。この句をマルチテナント環境で発行するには、ルートに接続する必要があります。

CREATE KEYSTORE パスワードベースのソフトウェア・キーストアを作成するには、この句を指定します。

  • keystore_locationには、ソフトウェア・キーストア・ディレクトリのフルパス名を指定します。キーストアは、このディレクトリにewallet.p12という名前のファイルで作成されます。ご使用のシステムのソフトウェア・キーストア・ディレクトリを確認する方法の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

  • keystore_passwordを使用して、キーストアのパスワードを設定します。詳細は、「キーストア・パスワードを指定するときの注意事項」を参照してください。

CREATE [ LOCAL ] AUTO_LOGIN KEYSTORE 自動ログイン・ソフトウェア・キーストアを作成するには、この句を指定します。自動ログイン・ソフトウェア・キーストアは、既存のパスワードベースのソフトウェア・キーストアから作成されます。自動ログイン・キーストアは、システム生成のパスワードを保持します。これは、パスワードベースのソフトウェア・キーストアと同じディレクトリにある、cwallet.ssoという名前のPKCS#12ベースのファイルに格納されます。

  • デフォルトでは、Oracleが作成する自動ログイン・キーストアは、このキーストアが格納されているコンピュータ以外のコンピュータからも開けるようになります。LOCALキーワードを指定すると、Oracle Databaseによりローカルの自動ログイン・キーストアが作成されますが、そのキーストアはそれが格納されているコンピュータからのみ開けます。

  • keystore_locationには、既存のパスワードベースのソフトウェア・キーストアが格納されているディレクトリのフルパス名を指定します。パスワードベースのソフトウェア・キーストアは、開いていても閉じていてもかまいません。

  • keystore_passwordには、既存のパスワードベースのソフトウェア・キーストアのパスワードを指定します。

キーストアの作成についての制限事項 ローカルであるかどうかにかかわらず、パスワードベースのソフトウェア・キーストアと自動ログイン・ソフトウェア・キーストアは、どちらも1つのディレクトリ内に1つまで作成できます。


関連項目:

ソフトウェア・キーストアの作成の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

open_keystore

この句を使用すると、パスワードベースのソフトウェア・キーストアまたはハードウェア・キーストアを開くことができます。


注意:

自動ログイン・ソフトウェア・キーストアとローカルの自動ログイン・ソフトウェア・キーストアを開くために、この句を使用する必要はありません。これらのキーストアは、マスター暗号化キーへのアクセスにより自動的に開かれます。

  • keystore_passwordには、そのキーストアのパスワードを指定します。

  • CONTAINER句は、CDBに接続しているときに適用されます。

    現在のコンテナがプラガブル・データベース(PDB)である場合は、CONTAINER = CURRENTを指定すると、PDBでキーストアが開きます。PDBでキーストアを開く前に、ルートでキーストアが開かれている必要があります。

    現在のコンテナがルートである場合は、CONTAINER = CURRENTを指定すると、ルートでキーストアが開き、CONTAINER = ALLと指定すると、ルートとすべてのPDBでキーストアが開きます。

    この句を省略すると、CONTAINER = CURRENTがデフォルトになります。


関連項目:

パスワードベースのソフトウェア・キーストアとハードウェア・キーストアを開く方法の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

close_keystore

この句を使用すると、パスワードベースのソフトウェア・キーストア、自動ログイン・ソフトウェア・キーストア、またはハードウェア・キーストアを閉じることができます。キーストアを閉じると、すべての暗号化操作と復号化操作が無効になります。データを暗号化または複合化しようとしたり、暗号化されたデータにアクセスしようとすると、エラーが発生します。

  • パスワードベースのソフトウェア・キーストアまたはハードウェア・キーストアを閉じるには、keystore_passwordを指定します。

  • 自動ログイン・キーストアを閉じるときには、keystore_passwordを指定しないでください。自動ログイン・キーストアを閉じる前に、V$ENCRYPTION_WALLETビューのWALLET_TYPE列を確認してください。AUTOLOGINが戻されたら、キーストアを閉じることができます。そうしないと、キーストアを閉じようとするとエラーが発生します。

  • CONTAINER句は、CDBに接続しているときに適用されます。

    現在のコンテナがPDBである場合は、CONTAINER = CURRENTを指定すると、PDBでキーストアが閉じます。

    現在のコンテナがルートである場合は、CONTAINER = CURRENT句とCONTAINER = ALL句は同じ結果になり、どちらの句でもルートとすべてのPDBでキーストアが閉じます。

    この句を省略すると、CONTAINER = CURRENTがデフォルトになります。


関連項目:

キーストアを閉じる方法の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

backup_keystore

この句を使用すると、パスワードベースのソフトウェア・キーストアをバックアップできます。このキーストアは、開いている必要があります。

  • デフォルトでは、Oracle Databaseは、ewallet_timestamp.p12という形式の名前でバックアップ・ファイルを作成します。timestampは、UTC形式でのファイル作成時のタイムスタンプです。オプションのUSING 'backup_identifier'句を使用すると、バックアップ・ファイルの名前に追加するバックアップ識別子を指定できます。たとえば、バックアップ識別子に'Backup1'を指定すると、Oracle Databaseは、ewallet_timestamp_Backup1.p12という形式の名前でバックアップ・ファイルを作成します。

  • keystore_passwordには、そのキーストアのパスワードを指定します。

  • オプションのTO 'keystore_location'句を使用すると、バックアップ・ファイルの作成先ディレクトリを指定できます。この句を省略すると、バックアップは、キーストアがバックアップされているディレクトリに作成されます。


関連項目:

パスワードベースのソフトウェア・キーストアのバックアップ方法の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

alter_keystore_password

この句を使用すると、パスワードベースのソフトウェア・キーストアのパスワードを変更できます。このキーストアは、開いている必要があります。

  • old_keystore_passwordには、キーストアの古いパスワードを指定します。

  • new_keystore_passwordには、キーストアの新しいパスワードを指定します。

  • オプションのWITH BACKUP句を使用すると、パスワードを変更する前に、キーストアのバックアップを作成するようにデータベースに指示できます。詳細は、「WITH BACKUP句の注意事項」を参照してください。


関連項目:

パスワードベースのソフトウェア・キーストアのパスワード変更方法の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

merge_into_new_keystore

この句を使用すると、2つのソフトウェア・キーストアを新しい1つのキーストアにマージできます。2つの構成要素であるキーストアに含まれるキーと属性は、新しいキーストアに追加されます。構成要素であるキーストアには、パスワードベースのソフトウェア・キーストアまたは自動ログイン(ローカルの自動ログインを含む)ソフトウェア・キーストアのいずれもできます。また、それらは開いていても閉じていてもかまいません。新しいキーストアは、パスワードベースのソフトウェア・キーストアになります。マージが完了された時点では、閉じられた状態になります。この句に指定するキーストアは、データベースで使用するように構成されたキーストアでも、それ以外のキーストアでもかまいません。

  • keystore1_locationには、最初のキーストアが格納されているディレクトリのフルパス名を指定します。

  • IDENTIFIED BY keystore1_passwordは、最初のキーストアがパスワードベースのソフトウェア・キーストアの場合にかぎり指定できます。

  • keystore2_locationには、2番目のキーストアが格納されているディレクトリのフルパス名を指定します。

  • IDENTIFIED BY keystore2_passwordは、2番目のキーストアがパスワードベースのソフトウェア・キーストアの場合にかぎり指定できます。

  • keystore3_locationには、新しいキーストアの作成先になるディレクトリのフルパス名を指定します。

  • keystore3_passwordには、新しいキーストアのパスワードを指定します。詳細は、「キーストア・パスワードを指定するときの注意事項」を参照してください。


関連項目:

ソフトウェア・キーストアのマージ方法の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

merge_into_exist_keystore

この句を使用すると、ソフトウェア・キーストアを、それ以外の既存のソフトウェア・キーストアにマージできます。マージ元のキーストアに含まれるキーと属性は、マージ先のキーストアに追加されます。マージ元のキーストアには、パスワードベースのソフトウェア・キーストアまたは自動ログイン(ローカルの自動ログインを含む)ソフトウェア・キーストアのいずれも選択できます。また、それらは開いていても閉じていてもかまいません。マージ先になるキーストアは、パスワードベースのソフトウェア・キーストアにする必要があります。これは、マージの開始時に開いていても閉じられていてもかまいません。ただし、マージが完了した時点では、閉じられた状態になります。この句に指定するキーストアは、データベースで使用するように構成されたキーストアでも、それ以外のキーストアでもかまいません。

  • keystore1_locationには、マージ元のキーストアが格納されているディレクトリのフルパス名を指定します。

  • IDENTIFIED BY keystore1_passwordは、マージ元のキーストアがパスワードベースのソフトウェア・キーストアの場合にかぎり、指定できます。

  • keystore2_locationには、マージ先になるキーストアが格納されているディレクトリのフルパス名を指定します。

  • keystore2_passwordには、マージ先になるキーストアのパスワードを指定します。

  • オプションのWITH BACKUP句を使用すると、マージを実行する前にマージ先になるキーストアのバックアップを作成するようにデータベースに指示できます。詳細は、「WITH BACKUP句の注意事項」を参照してください。


関連項目:

ソフトウェア・キーストアのマージ方法の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

key_management_clauses

これらの句を使用して次のキー管理操作を実行できます。

  • マスター暗号化キーの作成とアクティブ化

  • 暗号化キーのタグの設定

  • キーストアからファイルへの暗号化キーのエクスポート

  • ファイルからキーストアへの暗号化キーのインポート

  • パスワードベースのソフトウェア・キーストアからハードウェア・キーストアへの移行

  • ハードウェア・キーストアからパスワードベースのソフトウェア・キーストアへの移行

set_key

この句は新しいマスター暗号化キーを作成し、それをアクティブ化します。この句を使用すると、キーストア内に最初のマスター暗号化キーを作成することも、マスター暗号化キーを交換(変更)することもできます。この句を使用するときに、マスター暗号化キーがアクティブな場合は、そのキーが非アクティブ化されてから新しいマスター暗号化キーがアクティブ化されます。キーを含むキーストアは、パスワードベースのソフトウェア・キーストアであっても、ハードウェア・キーストアであってもかまいません。このキーストアは、開いている必要があります。

  • ENCRYPTIONキーワードはオプションで、意味を明確化するために使用されます。

  • オプションのUSING TAG句を指定すると、タグを新しいマスター暗号化キーに関連付けできます。詳細は、「USING TAG句の注意事項」を参照してください。

  • keystore_passwordには、そのキーストアのパスワードを指定します。

  • WITH BACKUP句と、オプションのUSING 'backup_identifier'句を指定すると、新しいマスター暗号化キーが作成される前に、キーストアのバックアップが作成されます。詳細は、「WITH BACKUP句の注意事項」を参照してください。

  • CONTAINER句は、CDBに接続しているときに適用されます。

    現在のコンテナがPDBである場合は、CONTAINER = CURRENTを指定すると、PDBで新しいマスター暗号化キーが作成およびアクティブ化されます。PDBでマスター暗号化キーを作成する前に、ルートにマスター暗号化キーが存在する必要があります。

    現在のコンテナがルートの場合は、CONTAINER = CURRENTを指定すると、ルートで新しいマスター暗号化キーが作成およびアクティブ化され、CONTAINER = ALLを指定すると、すべてのPDBで新しいマスター暗号化キーが作成およびアクティブ化されます。

    この句を省略すると、CONTAINER = CURRENTがデフォルトになります。


関連項目:

マスター暗号化キーの作成およびアクティブ化の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

create_key

この句を使用すると、後で使用するためのマスター暗号化キーを作成できます。その後で、use_key句を使用すると、このキーをアクティブ化できます。キーを含むキーストアは、パスワードベースのソフトウェア・キーストアであっても、ハードウェア・キーストアであってもかまいません。このキーストアは、開いている必要があります。

  • ENCRYPTIONキーワードはオプションで、意味を明確化するために使用されます。

  • オプションのUSING TAG句を指定すると、タグを暗号化キーに関連付けできます。詳細は、「USING TAG句の注意事項」を参照してください。

  • keystore_passwordには、キーの作成先になるキーストアのパスワードを指定します。

  • WITH BACKUP句とオプションのUSING 'backup_identifier'句を指定すると、キーが作成される前に、キーストアのバックアップが作成されるようになります。詳細は、「WITH BACKUP句の注意事項」を参照してください。

  • CONTAINER句は、CDBに接続しているときに適用されます。

    現在のコンテナがPDBである場合は、CONTAINER = CURRENTを指定すると、PDBでマスター暗号化キーが作成されます。PDBでマスター暗号化キーを作成する前に、ルートにマスター暗号化キーが存在する必要があります。

    現在のコンテナがルートである場合は、CONTAINER = CURRENTを指定すると、ルートでマスター暗号化キーが作成され、CONTAINER = ALLを指定すると、ルートとすべてのPDBでマスター暗号化キーが作成されます。

    この句を省略すると、CONTAINER = CURRENTがデフォルトになります。


関連項目:

後で使用するためのマスター暗号化キーの作成方法の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

use_key

この句を使用して作成済のマスター暗号化キーをアクティブ化できます。この句を使用するときに、マスター暗号化キーがアクティブな場合は、そのキーが非アクティブ化されてから新しいマスター暗号化キーがアクティブ化されます。キーを含むキーストアは、パスワードベースのソフトウェア・キーストアであっても、ハードウェア・キーストアであってもかまいません。このキーストアは、開いている必要があります。

  • ENCRYPTIONキーワードはオプションで、意味を明確化するために使用されます。

  • key_idには、アクティブ化するキーの識別子を指定します。キー識別子は、V$ENCRYPTION_KEYSビューのKEY_ID列を問い合せることで確認できます。

  • オプションのUSING TAG句を指定すると、タグを暗号化キーに関連付けできます。詳細は、「USING TAG句の注意事項」を参照してください。

  • keystore_passwordには、このキーを格納するキーストアのパスワードを指定します。

  • WITH BACKUP句とオプションのUSING 'backup_identifier'句を指定すると、キーがアクティブ化される前に、キーストアのバックアップを作成するようになります。詳細は、「WITH BACKUP句の注意事項」を参照してください。


関連項目:

マスター暗号化キーのアクティブ化の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

set_key_tag

この句を使用してに指定された暗号化キーにタグを設定できます。タグはオプションで、キーに関するユーザー定義の記述子です。キーにタグがない場合は、この句を使用してタグを作成できます。キーにタグがある場合は、この句を使用して置き換えることができます。暗号化キーのタグは、V$ENCRYPTION_KEYSビューのTAG列を問い合せることで表示できます。

  • tagには、英数字の文字列を指定します。tagは、一重引用符(' ')で囲みます。

  • key_idには、暗号化キーの識別子を指定します。キー識別子は、V$ENCRYPTION_KEYSビューのKEY_ID列を問い合せることで確認できます。

  • keystore_passwordには、このキーを格納するキーストアのパスワードを指定します。

  • WITH BACKUP句とオプションのUSING 'backup_identifier'句を指定すると、キーがアクティブ化される前に、キーストアのバックアップが作成されます。詳細は、「WITH BACKUP句の注意事項」を参照してください。


関連項目:

キー・タグの設定の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

export_keys

この句を使用して、1つ以上の暗号化キーを、パスワードベースのソフトウェア・キーストアからファイルにエクスポートします。このキーストアは、開いている必要があります。各暗号化キーは、キー識別子およびキー属性とともにエクスポートされます。エクスポートされたキーは、ファイル内でパスワード(シークレット)によって保護されます。その後に、import_keys句を使用して1つ以上のキーをパスワードベースのソフトウェア・キーストアにインポートできます。

  • ENCRYPTIONキーワードはオプションで、意味を明確化するために使用されます。

  • secretを指定して、ファイル内のキーを保護するパスワード(シークレット)を設定します。シークレットは英数字の文字列です。シークレットは、二重引用符で囲むこともできます。引用符の有無にかかわらず、シークレットでは大文字と小文字が区別されます。

  • filenameには、キーのエクスポート先となるファイルのフルパス名を指定します。filenameは一重引用符で囲みます。

  • keystore_passwordには、エクスポートするキーを含むキーストアのパスワードを指定します。

  • 次のいずれかの方法により、WITH IDENTIFIER IN句を使用して、エクスポートする1つ以上の暗号化キーを指定します。

    • key_idを使用して、エクスポートする暗号化キーの識別子を指定します。key_idを複数指定する場合は、カンマ区切りのリストにします。キー識別子は、V$ENCRYPTION_KEYSビューのKEY_ID列を問い合せることで確認できます。

    • subqueryを使用して、エクスポートする暗号化キーのキー識別子のリストを戻す問合せを指定できます。たとえば、次のsubqueryは、タグがmytagという文字列で始まるデータベース内のすべての暗号化キーのキー識別子を戻します。

      SELECT KEY_ID FROM V$ENCRYPTION_KEYS WHERE TAG LIKE 'mytag%'
      

      Oracle Databaseは、subqueryを定義者の権限ではなく現在のユーザーの権限で実行することに注意してください。

    • WITH IDENTIFIER IN句を省略すると、データベース内のすべての暗号化キーがエクスポートされます。

WITH IDENTIFIER IN句の制限事項: マルチテナント環境では、PDBからのキーのエクスポート時にWITH IDENTIFIER INを指定できません。これによって、PDB内のすべてのキーが、アクティブな暗号化キーに関するメタデータとともに確実にエクスポートされます。その後、PDBのクローンを作成する場合や、PDBを切断して接続する場合には、エクスポート・ファイルを使用して、クローンとして作成したPDBまたは新たに接続したPDBにキーをインポートし、アクティブな暗号化キーに関する情報を保存できます。


関連項目:

暗号化キーのエクスポートの詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

import_keys

この句を使用して、1つ以上の暗号化キーを、ファイルからパスワードベースのソフトウェア・キーストアにインポートします。このキーストアは、開いている必要があります。各暗号化キーは、キー識別子およびキー属性とともにインポートされます。キーは、事前にexport_keys句を使用して、ファイルにエクスポートしておく必要があります。キーストアにインポートされているキーは再インポートできません。

  • ENCRYPTIONキーワードはオプションで、意味を明確化するために使用されます。

  • secretには、ファイル内のキーを保護するパスワード(シークレット)を指定します。シークレットは英数字の文字列です。シークレットは、二重引用符で囲むこともできます。引用符の有無にかかわらず、シークレットでは大文字と小文字が区別されます。

  • filenameには、キーのインポート元となるファイルのフルパス名を指定します。filenameは一重引用符で囲みます。

  • keystore_passwordには、キーのインポート先となるキーストアのパスワードを指定します。

  • WITH BACKUP句とオプションのUSING 'backup_identifier'句を指定すると、キーがインポートされる前に、キーストアのバックアップが作成されます。詳細は、「WITH BACKUP句の注意事項」を参照してください。


関連項目:

暗号化キーのインポートの詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

migrate_key

この句を使用して、パスワードベースのソフトウェア・キーストアからハードウェア・キーストアへ移行します。この句によって、既存の表暗号化キーおよび表領域暗号化キーが、ソフトウェア・キーストア内のマスター暗号化キーを使用して復号化され、次にハードウェア・キーストア内の新規作成されたマスター暗号化キーを使用して再び暗号化されます。


注意:

この句の使用は、パスワードベースのソフトウェア・キーストアからハードウェア・キーストアへの移行のための一連のステップのうちの単なる1ステップにすぎません。この句を使用する前に、すべてのステップについて、『Oracle Database Advanced Securityガイド』を参照してください。

reverse_migrate_key

この句を使用して、ハードウェア・キーストアからパスワードベースのソフトウェア・キーストアへ移行します。この句によって、既存の表暗号化キーおよび表領域暗号化キーが、ハードウェア・キーストア内のマスター暗号化キーを使用して復号化され、次にパスワードベースのソフトウェア・キーストア内の新規作成されたマスター暗号化キーを使用して再び暗号化されます。


注意:

この句の使用は、ハードウェア・キーストアからパスワードベースのソフトウェア・キーストアへの移行のための一連のステップのうちの単なる1ステップです。この句を使用する前に、すべてのステップについて、『Oracle Database Advanced Securityガイド』を参照してください。

secret_management_clauses

この句を使用して、パスワードベースのソフトウェア・キーストアやハードウェア・キーストア内のシークレットを追加、更新および削除できます。


関連項目:

シークレットの追加、更新および削除の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

add_update_secret

この句を使用して、シークレットを追加または更新できます。

  • キーストアにシークレットを追加するには、ADD を指定します。

  • キーストア内の既存のシークレットを更新するには、UPDATEを指定します。

  • secretには、追加または更新するシークレットを指定します。シークレットは英数字の文字列です。シークレットは一重引用符で囲みます。

  • client_identifierには、シークレットの識別に使用する英数字の文字列を指定します。client_identifierは一重引用符で囲みます。

  • オプションのUSING TAG句を指定すると、secretにタグを関連付けできます。tagはオプションで、シークレットに関するユーザー定義の記述子です。タグは一重引用符で囲みます。シークレットのタグは、V$CLIENT_SECRETSビューのSECRET_TAG列を問い合せることで確認できます。

  • keystore_passwordには、そのキーストアのパスワードを指定します。

  • WITH BACKUP句とオプションのUSING 'backup_identifier'句を指定すると、パスワードベースのソフトウェア・キーストアのシークレットが追加または更新される前に、キーストアのバックアップが作成されます。詳細は、「WITH BACKUP句の注意事項」を参照してください。

delete_secret

この句を使用してシークレットを削除できます。

  • client_identifierには、シークレットの識別に使用する英数字の文字列を指定します。client_identifierは一重引用符で囲みます。V$CLIENT_SECRETSビューのCLIENT列を問い合せることで、クライアント識別子を表示できます。

  • keystore_passwordには、そのキーストアのパスワードを指定します。

  • WITH BACKUP句とオプションのUSING 'backup_identifier'句を指定すると、パスワードベースのソフトウェア・キーストアからシークレットが削除される前に、キーストアのバックアップが作成されます。詳細は、「WITH BACKUP句の注意事項」を参照してください。

キーストア・パスワードを指定するときの注意事項 キーストア・パスワードは次のように指定します。

  • パスワードベースのソフトウェア・キーストアの場合は、文字列としてパスワードを指定します。パスワードを二重引用符で囲むこともできます。引用符の有無にかかわらず、パスワードは大文字と小文字が区別されます。キーストアのパスワードはデータベース・ユーザーのパスワードと同じ規則に従います。詳細は、「CREATE USER」の「BY password句を参照してください。

  • ハードウェア・キーストアの場合は、"user_id:password"の形式の文字列としてパスワードを指定します。

    • user_idは、HSM管理インタフェースを使用してデータベース用に作成されたユーザーIDです。

    • passwordは、HSM管理インタフェースを使用してユーザーIDに対して作成されたパスワードです。

    user_id:passwordの文字列は二重引用符(" ")囲み、user_idpasswordはコロン(:)で区切ります。

WITH BACKUP句の注意事項 多くのADMINISTER KEY MANAGEMENT操作には、WITH BACKUP句が含まれます。この句は、パスワードベースのソフトウェア・キーストアにのみ適用されます。これは、この操作を実行する前に、キーストアをバックアップする必要があることを意味しています。このため、操作を実行するときにWITH BACKUP句を指定するか、操作を実行する直ADMINISTER KEY MANAGEMENT backup_clause文を発行する必要があります。

WITH BACKUP句を指定すると、Oracle Databaseは、ewallet_timestamp.p12という形式の名前でバックアップ・ファイルを作成します。timestampは、UTC形式でのファイル作成時のタイムスタンプです。バックアップ・ファイルは、キーストアをバックアップしているディレクトリに作成されます。

オプションのUSING 'backup_identifier'句を使用すると、バックアップ・ファイルの名前に追加するバックアップ識別子を指定できます。たとえば、バックアップ識別子に'Backup1'を指定すると、Oracle Databaseは、ewallet_timestamp_Backup1.p12という形式の名前でバックアップ・ファイルを作成します。

USING TAG句の注意事項 多くのADMINISTER KEY MANAGEMENT操作にはUSING TAG句が含まれます。この句を使用すると、タグを暗号化キーに関連付けできます。tagはオプションで、キーに関するユーザー定義の記述子です。これは一重引用符で囲まれた文字列です。

暗号化キーのタグは、V$ENCRYPTION_KEYSビューのTAG列を問い合せることで表示できます。

キーストアを作成する例 次の文は/etc/ORACLE/WALLETS/orclディレクトリ内にパスワードベースのソフトウェア・キーストアを作成します。

ADMINISTER KEY MANAGEMENT
  CREATE KEYSTORE '/etc/ORACLE/WALLETS/orcl'
  IDENTIFIED BY password;

次の文は、前の文で作成されたキーストアから自動ログイン・ソフトウェア・キーストアを作成します。

ADMINISTER KEY MANAGEMENT
  CREATE AUTO_LOGIN KEYSTORE FROM KEYSTORE '/etc/ORACLE/WALLETS/orcl'
  IDENTIFIED BY password;

キーストアを開く例 次の文は、パスワードベースのソフトウェア・キーストアを開きます。

ADMINISTER KEY MANAGEMENT
  SET KEYSTORE OPEN
  IDENTIFIED BY password;

CDBに接続している場合、次の文は現在のコンテナ内のパスワードベースのソフトウェア・キーストアを開きます。

ADMINISTER KEY MANAGEMENT
  SET KEYSTORE OPEN
  IDENTIFIED BY password
  CONTAINER = CURRENT;

次の文はハードウェア・キーストアを開きます。

ADMINISTER KEY MANAGEMENT
  SET KEYSTORE OPEN
  IDENTIFIED BY "user_id:password";

キーストアを閉じる例 次の文はパスワードベースのソフトウェア・キーストアを閉じます。

ADMINISTER KEY MANAGEMENT
  SET KEYSTORE CLOSE
  IDENTIFIED BY password;

次の文は、自動ログイン・ソフトウェア・キーストアを閉じます。

ADMINISTER KEY MANAGEMENT
  SET KEYSTORE CLOSE;

次の文は、ハードウェア・キーストアを閉じます。

ADMINISTER KEY MANAGEMENT
  SET KEYSTORE CLOSE
  IDENTIFIED BY "user_id:password";

キーストアをバックアップする例 次の文は、パスワードベースのソフトウェア・キーストアのバックアップを作成します。バックアップは、/etc/ORACLE/KEYSTORE/DB1ディレクトリに格納され、バックアップ・ファイル名にタグhr.emp_keystoreが含まれます。

ADMINISTER KEY MANAGEMENT
  BACKUP KEYSTORE USING 'hr.emp_keystore'
  IDENTIFIED BY password
  TO '/etc/ORACLE/KEYSTORE/DB1/';

キーストア・パスワードを変更する例 次の文は、パスワードベースのソフトウェア・キーストアのパスワードを変更します。パスワードを変更する前に、キーストアのバックアップもタグpwd_change付きで作成します。

ADMINISTER KEY MANAGEMENT
  ALTER KEYSTORE PASSWORD IDENTIFIED BY old_password
  SET new_password WITH BACKUP USING 'pwd_change';

2つのキーストアを1つの新しいキーストアにマージする例 次の文は、自動ログイン・ソフトウェア・キーストアとパスワードベースのソフトウェア・キーストアをマージして、1つの新しいパスワードベースのソフトウェア・キーストアを別の場所に作成します。

ADMINISTER KEY MANAGEMENT
  MERGE KEYSTORE '/etc/ORACLE/KEYSTORE/DB1'
  AND KEYSTORE '/etc/ORACLE/KEYSTORE/DB2'
    IDENTIFIED BY existing_keystore_password
  INTO NEW KEYSTORE '/etc/ORACLE/KEYSTORE/DB3'
    IDENTIFIED BY new_keystore_password;

キーストアを既存のキーストアにマージする例 次の文は、自動ログイン・ソフトウェア・キーストアをパスワードベースのソフトウェア・キーストアにマージします。マージを実行する前に、パスワードベースのソフトウェア・キーストアのバックアップも作成します。

ADMINISTER KEY MANAGEMENT
  MERGE KEYSTORE '/etc/ORACLE/KEYSTORE/DB1'
  INTO EXISTING KEYSTORE '/etc/ORACLE/KEYSTORE/DB2'
    IDENTIFIED BY existing_keystore_password
  WITH BACKUP;

マスター暗号化キーを作成しアクティブ化する例 次の文は、パスワードベースのソフトウェア・キーストア内にマスター暗号化キーを作成し、アクティブ化します。新しいマスター暗号化キーを作成する前に、キーストアのバックアップも作成します。

ADMINISTER KEY MANAGEMENT
  SET KEY IDENTIFIED BY password
  WITH BACKUP;

次の文は、パスワードベースのソフトウェア・キーストア内にマスター暗号化キーを作成しますが、そのキーをアクティブ化しません。新しいマスター暗号化キーを作成する前に、キーストアのバックアップも作成します。

ADMINISTER KEY MANAGEMENT
  CREATE KEY USING TAG 'mykey1'
  IDENTIFIED BY password
  WITH BACKUP;

次の問合せは、前の文で作成されたマスター暗号化キーのキー識別子を表示します。

SELECT TAG, KEY_ID
  FROM V$ENCRYPTION_KEYS
  WHERE TAG = 'mykey1';

TAG     KEY_ID
---     ----------------------------------------------------
mykey1  ARgEtzPxpE/Nv8WdPu8LJJUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

次の文は、前の文で問合せのあったマスター暗号化キーをアクティブ化します。新しいマスター暗号化キーをアクティブ化する前に、キーストアのバックアップも作成します。

ADMINISTER KEY MANAGEMENT
  USE KEY 'ARgEtzPxpE/Nv8WdPu8LJJUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
  IDENTIFIED BY password
  WITH BACKUP;

キー・タグを設定する例 次の文は、前の例でアクティブ化されたマスター暗号化キーのタグをmykey2に変更します。タグを変更する前に、キーストアのバックアップも作成します。

ADMINISTER KEY MANAGEMENT
  SET TAG 'mykey2' FOR 'ARgEtzPxpE/Nv8WdPu8LJJUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
  IDENTIFIED BY password
  WITH BACKUP;

キーをエクスポートする例 次の文は、パスワードベースのソフトウェア・キーストアから/etc/TDE/export.expファイルに2つのマスター暗号化キーをエクスポートします。この文は、シークレットmy_secretを使用してそのファイルの内のマスター暗号化キーを暗号化します。エクスポートされるマスター暗号化キーの識別子は、カンマ区切りのリストとして提供されます。

ADMINISTER KEY MANAGEMENT
  EXPORT KEYS WITH SECRET "my_secret"
  TO '/etc/TDE/export.exp'
  IDENTIFIED BY password
  WITH IDENTIFIER IN 'AdoxnJ0uH08cv7xkz83ovwsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',
                     'AW5z3CoyKE/yv3cNT5CWCXUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA';

次の文は、パスワードベースのソフトウェア・キーストアから/etc/TDE/export.expファイルにマスター暗号化キーをエクスポートします。タグがmytag1またはmytag2であるキーのみがエクスポートされます。ファイル内のマスター鍵は、シークレットmy_secretを使用して暗号化されます。キー識別子は、V$ENCRYPTION_KEYSビューに問い合せて見つけます。

ADMINISTER KEY MANAGEMENT
  EXPORT KEYS WITH SECRET "my_secret"
  TO '/etc/TDE/export.exp'
  IDENTIFIED BY password
  WITH IDENTIFIER IN
    (SELECT KEY_ID FROM V$ENCRYPTION_KEYS WHERE TAG IN ('mytag1', 'mytag2'));

次の文は、データベースのすべてのマスター暗号化キーを/etc/TDE/export.expファイルにエクスポートします。ファイル内のマスター鍵は、シークレットmy_secretを使用して暗号化されます。

ADMINISTER KEY MANAGEMENT
  EXPORT KEYS WITH SECRET "my_secret"
  TO '/etc/TDE/export.exp'
  IDENTIFIED BY password;

マルチテナント環境で、次の文は、PDB salespdbのすべてのマスター暗号化キーをメタデータとともに/etc/TDE/salespdb.expファイルにエクスポートします。ファイル内のマスター鍵は、シークレットmy_secretを使用して暗号化されます。その後、PDBのクローンを作成する場合や、PDBを切断して再接続する場合には、この文で作成されたエクスポート・ファイルを使用して、クローンとして作成したPDB、または新たに接続したPDBにキーをインポートできます。

ALTER SESSION SET CONTAINER = salespdb;
ADMINISTER KEY MANAGEMENT
  EXPORT KEYS WITH SECRET "my_secret"
  TO '/etc/TDE/salespdb.exp'
  IDENTIFIED BY password;

キーをインポートする例 次の文は、/etc/TDE/export.expファイルからパスワードベースのソフトウェア・キーストアに、シークレットmy_secretで暗号化されたマスター暗号化キーをインポートします。キーをインポートする前に、パスワードベースのソフトウェア・キーストアのバックアップも作成します。

ADMINISTER KEY MANAGEMENT
  IMPORT KEYS WITH SECRET "my_secret"
  FROM '/etc/TDE/export.exp'
  IDENTIFIED BY password
  WITH BACKUP;

キーの移行の例: 次の文は、パスワードベースのソフトウェア・キーストアからハードウェア・キーストアへの移行を実行します。移行を実行する前に、パスワードベースのソフトウェア・キーストアのバックアップも作成します。

ADMINISTER KEY MANAGEMENT
  SET ENCRYPTION KEY IDENTIFIED BY "user_id:password"
  MIGRATE USING software_keystore_password
  WITH BACKUP;

キーストアの逆方向の移行の例: 次の文は、ハードウェア・キーストアからパスワードベースのソフトウェア・キーストアへの逆方向の移行を実行します。

ADMINISTER KEY MANAGEMENT
  SET ENCRYPTION KEY IDENTIFIED BY software_keystore_password
  REVERSE MIGRATE USING "user_id:password";

シークレットをキーストアに追加する例 次の文は、クライアントclient1のシークレットsecret1をタグMy first secret付きでパスワードベースのソフトウェア・キーストアに追加します。シークレットを追加する前に、パスワードベースのソフトウェア・キーストアのバックアップも作成します。

ADMINISTER KEY MANAGEMENT
  ADD SECRET 'secret1' FOR CLIENT 'client1'
  USING TAG 'My first secret'
  IDENTIFIED BY password
  WITH BACKUP;

次の文は、類似したシークレットをハードウェア・キーストアに追加します。

ADMINISTER KEY MANAGEMENT
  ADD SECRET 'secret2' FOR CLIENT 'client2'
  USING TAG 'My second secret'
  IDENTIFIED BY "user_id:password";

キーストア内のシークレットを更新する例 次の文は、前の例でパスワードベースのソフトウェア・キーストア内に作成されたシークレットを更新します。シークレットを更新する前に、パスワードベースのソフトウェア・キーストアのバックアップも作成します。

ADMINISTER KEY MANAGEMENT
  UPDATE SECRET 'secret1' FOR CLIENT 'client1'
  USING TAG 'New Tag 1'
  IDENTIFIED BY password
  WITH BACKUP;

次の文は、前の例でハードウェア・キーストア内に作成されたシークレットを更新します。

ADMINISTER KEY MANAGEMENT
  UPDATE SECRET 'secret2' FOR CLIENT 'client2'
  USING TAG 'New Tag 2'
  IDENTIFIED BY "user_id:password";

キーストアからシークレットを削除する例 次の文は、前の例で更新されたシークレットをパスワードベースのソフトウェア・キーストアから削除します。シークレットを削除する前に、パスワードベースのソフトウェア・キーストアのバックアップも作成します。

ADMINISTER KEY MANAGEMENT
  DELETE SECRET FOR CLIENT 'client1'
  IDENTIFIED BY password
  WITH BACKUP;

次の文は、前の例で更新されたシークレットをハードウェア・キーストアから削除します。

ADMINISTER KEY MANAGEMENT
  DELETE SECRET FOR CLIENT 'client2'
  IDENTIFIED BY "user_id:password";