9.4 BLOCKCHAIN_TABLE

このコマンドでは、DBMS_BLOCKCHAIN_TABLE PL/SQLパッケージの拡張機能が使用されます。ブロックチェーン表は、集中管理ブロックチェーン・アプリケーション向けに設計された追加専用の表です。V2ブロックチェーン表は、V1ブロックチェーン表にある機能に加えて、スキーマの進化、委任署名および副署をサポートしています。ブロックチェーン表では、PEMエンコーディングではなく、DERエンコーディングのみがX.509証明書に対してサポートされます。

構文

blockchain_table|bl [add_interval_partitioning|addintpartition] |
[countersign_row|countersign] | desc | [delete_expired_rows|del] |
get_bytes_for_row_hash | get_bytes_for_row_signature | get_digest |
get_signed_digest | [sign_row|sign] |
[sign_row_with_countersignature|signandcountersign] | verify_rows | verify_table | verify_user_chains

次の表に、各サブコマンドの説明を示します。

サブコマンド 説明
add_interval_partitioning | addintpartition 時間隔パーティション化を、既存のパーティション化されていないV1またはV2ブロックチェーン表に追加します。
countersign_row | countersign ブロックチェーン表内の指定された行にある副署を取得します。この副署は、データベース・ウォレットに格納されている表所有者の秘密キーを使用して行データ・コンテンツに署名することで生成されます。
desc ブロックチェーン表の詳細を説明します。
delete_expired_rows | del ブロックチェーン表にある期限切れ行を一部またはすべて削除します。
get_bytes_for_row_hash row_dataで、識別された特定の行のバイト(列位置順の一連のmeta-data-valueとcolumn-data-valueのペア)を、その後にチェーン内の前の行のハッシュを付けて、指定されたデータ形式で返します。
get_bytes_for_row_signature ユーザー署名、委任署名または副署を算出するために使用されるバイトを返します。ユーザー署名または委任署名の場合、このコマンドでは、メタデータのない行にあるハッシュのバイトが、row_dataで返されます。
get_digest ユーザー指定行または指定したブロックチェーン表について、ダイジェットの暗号化ハッシュを生成して返します。
get_signed_digest データベース・ウォレットに格納されている表所有者の秘密キーを使用して、ブロックチェーン表内のユーザー指定行について(指定されている場合)署名付きダイジェストを生成して返します。ダイジェスト内の特定の行は、selectorパラメータで指定します。このフィールドのデフォルト値はNULLです。signed_bytes、signed_row_indexesおよびschema_certificate_guidも戻されます。
sign_row | sign 以前に挿入された行の行コンテンツに対して、現在のユーザーによる署名を提供します。
sign_row_with_countersignature | signandcountersign データベースからの副署をユーザーが要求できるようにします。副署は、データベース・ウォレットに格納されている表所有者の秘密キーを使用して行データ・コンテンツに署名することで生成されます。このコマンドは、SIGN_ROWコマンドの拡張です。
verify_rows 適用可能なすべてのシステム・チェーンにあるすべての行について、low_timestampからhigh_timestampまでの範囲内で作成された行のHASH列値の整合性を検証します。行の署名は、オプションとして検証できます。
verify_table 作成時間がbegin_bytes_file内の行作成時間の最小値からend_bytes_file内の行作成時間の最大値までの範囲内にある行すべてを検証し、正常に検証された行の数を返します。
verify_user_chains ブロックチェーン表に対してユーザー・チェーン機能が有効になっている場合に、ユーザー・チェーン1つ以上の行を検証します。

次の例では、ブロックチェーン表内の操作対象となる行を選択するための様々な方法を示します。

  • 位置パラメータ(インスタンスID、チェーンID、順序ID)を使用して行を選択するには、次のコマンドのどれかを使用します。

    bl countersign_row -tab <TABLE_NAME> -inst <INSTANCE_ID> -ch <CHAIN_ID> -seq  <SEQUENCE_ID> -countersignalgo <ALGORITHM> -cscg <CERTIFICATE_GUID> -bytes_file  <PATH_TO_FILE>/countersignBytes.txt -csig <COUNTERSIGNATURE_VARIABLE>
    
    bl get_bytes_for_row_hash -tab <TABLE_NAME> -inst <INSTANCE_ID> -ch <CHAIN_ID> -seq <SEQUENCE_ID> -uchain <USER_CHAIN>
    bl get_bytes_for_row_signature -tab <TABLE_NAME> -inst  <INSTANCE_ID> -ch <CHAIN_ID> -seq <SEQUENCE_ID> -row_data_file <PATH_TO_FILE>/test2.txt
    bl sign_row -tab <TABLE_NAME> -inst <INSTANCE_ID> -ch <CHAIN_ID> -seq <SEQUENCE_ID> -row_hash <ROW_HASH> -signature_file <PATH_TO_FILE>/u1r1_sign.dat -cert_guid <CERTIFICATE_GUID> -algo <ALGORITHM>
    bl signandcountersign -tab <TABLE_NAME> -inst <INSTANCE_ID> -ch <CHAIN_ID> -seq <SEQUENCE_ID> -row_hash <ROW_HASH> -signature_file <PATH_TO_FILE>/u1r11_sign.dat -cert_guid <CERTIFICATE_GUID> -algo <ALGORITHM>
  • キー列パラメータを使用して行を選択するには、次のコマンドのどれか使用します。

    blockchain_table countersign_row -tab <TABLE_NAME> -kc1name <COLUMN_NAME> -kc1val <COLUMN_VALUE> -countersignalgo <ALGORITHM> -cscg <CERTIFICATE_GUID> -bytes_file <PATH_TO_FILE>/countersignBytes.txt -csig <COUNTERSIGNATURE_VARIABLE>
    bl get_bytes_for_row_hash -table_name <TABLE_NAME> -kc1name <COLUMN_NAME> -kc1val <COLUMN_VALUE>
    bl get_bytes_for_row_signature -tab <TABLE_NAME> -kc1name <COLUMN_NAME> -kc1val <COLUMN_VALUE> -row_data_file <PATH_TO_FILE>/u1r1.dat
    bl sign_row -tab <TABLE_NAME> -kc1name <COLUMN_NAME> -kc1val <COLUMN_VALUE> -signature_file <PATH_TO_FILE>/u1r2_sign.dat -cert_guid <CERTIFICATE_GUID> -algo <ALGORITHM>
    bl signandcountersign -tab  <TABLE_NAME> -kc1name <COLUMN_NAME> -kc1val <COLUMN_VALUE> -signature_file <PATH_TO_FILE>/u1r12_sign.dat -cert_guid <CERTIFICATE_GUID> -algo <ALGORITHM>

9.4.1 add_interval_partitioning

時間隔パーティション化を、既存のパーティション化されていないV1またはV2ブロックチェーン表に追加します。

構文

blockchain_table|bl add_interval_partitioning|addintpartition {OPTIONS}

オプション

オプション 説明
必須
-table_name|-tab <table_name> ブロックチェーン表の名前を指定します。この名前の前に、それぞれのスキーマ名を付けることができます。大文字と小文字が区別されるスキーマ名または表名を指定するには、名前全体を二重引用符で囲んでから、個々の名前を二重の二重引用符で囲みます。

ノート:

大文字と小文字が区別される、空白文字が埋め込まれている表名およびスキーマ名は、"""Alp_ha"".""Be $a"""のように入力する必要があります。パーサーでは、これらの値は"Alp_ha"."Be $a"として解析されます。
-interval_number|-intnum <interval_number> データベースでブロックチェーン表のパーティションが作成される頻度を決める、間隔番号を指定します。
-interval_frequency|-intfreq <interval_frequency> interval_number設定によって設定され指定された間隔内でのデータベースによってブロックチェーン表のパーティションが作成される頻度を決める、間隔頻度を指定します。サポートされている値は、YEAR、MONTH、DAY、HOUR、MINUTEです。
-first_high_timestamp|-firsthigh <first_high_timestamp> ブロックチェーン表内の最初のパーティションの上限を決めるタイムスタンプを指定します。

2024年1月23日(12:47:29)から毎日の頻度でBCTAB1ブロックチェーン表をパーティション化します。

bl addintpartition -tab "u1.""bctab1""" -intnum 1 -intfreq "DAY" -firsthigh "23-JAN-24 12.47.29.182463000"

9.4.2 countersign_row

ブロックチェーン表内の指定された行にある副署を取得します。この副署は、データベース・ウォレットに格納されている表所有者の秘密キーを使用して行データ・コンテンツに署名することで生成されます。

構文

blockchain_table|bl countersign_row|countersign {OPTIONS}

オプション

オプション 説明
必須
-table_name|-tab <table_name> ブロックチェーン表の名前を指定します。この名前の前に、それぞれのスキーマ名を付けることができます。大文字と小文字が区別されるスキーマ名または表名を指定するには、名前全体を二重引用符で囲んでから、個々の名前を二重の二重引用符で囲みます。

ノート:

大文字と小文字が区別される、空白文字が埋め込まれている表名およびスキーマ名は、"""Alp_ha"".""Be $a"""のように入力する必要があります。パーサーでは、これらの値は"Alp_ha"."Be $a"として解析されます。
-instance_id|-inst <instance_id> その行を挿入したインスタンスを指定します。指定した場合は、その操作が、指定したインスタンスによって挿入された行に限定されます。
-chain_id|-ch <chain_id> その行を含むチェーンを指定します。指定した場合は、その操作が、指定したチェーンに割り当てられている行に限定されます。デフォルトでは、各インスタンスに32個のチェーンがあり、0から31までの番号が付けられます。
-sequence_id|-seq <sequence_id> 指定したチェーンでのその行の位置を指定します。
オプション
-keycol1_name|-kc1name <keycol1_name> キー列の名前を指定します。
-keycol1_value|-kc1val <keycol1_value> キー列の値を指定します。
-keycol2_name|-kc2name <keycol2_name> コンポジット・キーの第2列の名前を指定します。
-keycol2_value|-kc2val <keycol2_value> コンポジット・キーの第2列の値を指定します。
-keycol3_name|-kc3name <keycol3_name> コンポジット・キーの第3列の名前を指定します。
-keycol3_value|-kc3val <keycol3_value> コンポジット・キーの第3列の値を指定します。
-countersignature_algorithm|-countersignalgo <countersignature_algorithm> 副署に使用する暗号化ハッシュ・アルゴリズムを指定します。このフィールドのデフォルト値はDBMS_BLOCKCHAIN_TABLE.SIGN_ALGO_DEFAULTです。指定した場合は、このパラメータを、次の受入可能なリテラルのどれかにする必要があります:
  • RSA_SHA2_256
  • RSA_SHA2_384
  • RSA_SHA2_512
-bytes_file <bytes_file> 署名された副署のバイトが含まれているファイルの名前を指定します。
-countersignature|-csig <countersignature> bytes_fileで返されたバイトに対するデジタル署名を指定します。これはOUTパラメータ・オプションであり、コマンドの出力値をバインド変数に格納するために使用されます。
-countersign_cert_guid|-cscg <countersign_cert_guid> 副署の検証に使用できる、データベースに格納されているブロックチェーン表所有者の証明書の一意の識別子を指定します。これはOUTパラメータ・オプションであり、コマンドの出力値をバインド変数に格納するために使用されます。
-content_version <content_version> ('V2_DIGEST') 副署アルゴリズムへの入力として使用されるデータ・コンテンツおよびレイアウトのバージョンを指定します。このリリースでは、V2_DIGESTのみがサポートされています。

COL1が200である、BCTAB1ブロックチェーン表内の行に副署します。

bl countersign -tab u1.bctab1 -kc1name "COL1" -kc1val "200"

9.4.3 desc

ブロックチェーン表の詳細を説明します。

構文

blockchain_table|bl desc {OPTIONS}

オプション

オプション 説明
必須
-table_name|-tab <table_name> ブロックチェーン表の名前を指定します。この名前の前に、それぞれのスキーマ名を付けることができます。大文字と小文字が区別されるスキーマ名または表名を指定するには、名前全体を二重引用符で囲んでから、個々の名前を二重の二重引用符で囲みます。

ノート:

大文字と小文字が区別される、空白文字が埋め込まれている表名およびスキーマ名は、"""Alp_ha"".""Be $a"""のように入力する必要があります。パーサーでは、これらの値は"Alp_ha"."Be $a"として解析されます。

9.4.4 delete_expired_rows

ブロックチェーン表にある期限切れ行を一部またはすべて削除します。

構文

blockchain_table|bl delete_expired_rows|del {OPTIONS}

オプション

オプション 説明
必須
-table_name|-tab <table_name> ブロックチェーン表の名前を指定します。この名前の前に、それぞれのスキーマ名を付けることができます。大文字と小文字が区別されるスキーマ名または表名を指定するには、名前全体を二重引用符で囲んでから、個々の名前を二重の二重引用符で囲みます。

ノート:

大文字と小文字が区別される、空白文字が埋め込まれている表名およびスキーマ名は、"""Alp_ha"".""Be $a"""のように入力する必要があります。パーサーでは、これらの値は"Alp_ha"."Be $a"として解析されます。
オプション
-before_timestamp|-before <before_timestamp> 期限切れ行の削除を決めるタイムスタンプを指定します。このパラメータは、NLS_TIMESTAMP_FORMATまたはNLS_TIMESTAMP_TZ_FORMATに従って設定します。このパラメータのデフォルト値はNULLです。
  • このパラメータ値がNULLである場合は、表内の期限切れ行がすべて削除されます。
  • このパラメータ値がNULLではなく、現在時刻と行保存時間に基づいて算出されたタイムスタンプより前である場合は、このパラメータ値より前のタイムスタンプがある行が削除されます。
  • このパラメータ値がNULLではなく、現在時刻と行保存期間に基づいて算出されたタイムスタンプより後である場合は、算出されたタイムスタンプが使用され、期限切れ行すべてが削除されます。
-rowcount <rowcount> 削除された行の数をリクエストします。これはOUTパラメータ・オプションであり、コマンドの出力値をバインド変数に格納するために使用されます。

2024年1月23日(午前11時)より前に期限切れになった、BCTAB1ブロックチェーン表にある期限切れ行を削除し、削除された行の数をバインド変数row_countに格納します。

blockchain_table delete_expired_rows -table_name """bcta _b1""" -before_timestamp 23-JAN-23 11.00.00 AM -rowcount ":count1"

9.4.5 get_bytes_for_row_hash

row_dataで、識別された特定の行のバイト(列位置順の一連のmeta-data-valueとcolumn-data-valueのペア)を、その後にチェーン内の前の行のハッシュを付けて、指定されたデータ形式で返します。

構文

blockchain_table|bl get_bytes_for_row_hash {OPTIONS}

オプション

オプション 説明
必須
-table_name|-tab <table_name> ブロックチェーン表の名前を指定します。この名前の前に、それぞれのスキーマ名を付けることができます。大文字と小文字が区別されるスキーマ名または表名を指定するには、名前全体を二重引用符で囲んでから、個々の名前を二重の二重引用符で囲みます。

ノート:

大文字と小文字が区別される、空白文字が埋め込まれている表名およびスキーマ名は、"""Alp_ha"".""Be $a"""のように入力する必要があります。パーサーでは、これらの値は"Alp_ha"."Be $a"として解析されます。
-instance_id|-inst <instance_id> その行を挿入したインスタンスを指定します。指定した場合は、その操作が、指定したインスタンスによって挿入された行に限定されます。
-chain_id|-ch <chain_id> その行を含むチェーンを指定します。指定した場合は、その操作が、指定したチェーンに割り当てられている行に限定されます。デフォルトでは、各インスタンスに32個のチェーンがあり、0から31までの番号が付けられます。
-sequence_id|-seq <sequence_id> 指定したチェーンでのその行の位置を指定します。
オプション
-data_format|-df <data_format> 指定した行にあるハッシュのデータ・レイアウトのバージョンを指定します。このリリースでは、1にする必要があります。デフォルトでは、このオプションの値は1に設定されています。
-row_data_file <row_data_file> 生成されたrow_data_bytesが保存されるファイルを指定します。
-user_chain|-uchain <user_chain> ユーザー・チェーンにある暗号化ハッシュのバイトが必要な場合の、ユーザー・チェーンの名前を指定します。このオプションを指定しなかった場合は、システム・チェーンの暗号化ハッシュのバイトが、必要な出力とみなされます。
-keycol1_name|-kc1name <keycol1_name> キー列の名前を指定します。
-keycol1_value|-kc1val <keycol1_value> キー列の値を指定します。
-keycol2_name|-kc2name <keycol2_name> コンポジット・キーの第2列の名前を指定します。
-keycol2_value|-kc2val <keycol2_value> コンポジット・キーの第2列の値を指定します。
-keycol3_name|-kc3name <keycol3_name> コンポジット・キーの第3列の名前を指定します。
-keycol3_value|-kc3val <keycol3_value> コンポジット・キーの第3列の値を指定します。
-pdb_guid <pdb_guid> V2ブロックチェーン表の場合の、行を挿入したプラガブル・データベースの識別子を指定します。指定した場合は、指定したプラガブル・データベースによって挿入されたシステム・チェーンへの注意が制限されます。V1ブロックチェーン表の場合は、これをNULLにする必要があります。

INSTANCE_ID = 1、CHAIN_ID = 27およびSEQUENCE_ID = 2によって特定された、BCTAB1ブロックチェーン表内の行について、行ハッシュのバイトを取得します。

blockchain_table get_bytes_for_row_hash -tab u1.bcTAB1 -inst 1 -ch 27 -seq 2

9.4.6 get_bytes_for_row_signature

ユーザー署名、委任署名または副署を算出するために使用されるバイトを返します。

ユーザー署名または委任署名の場合、このコマンドでは、row_dataで、メタデータのない行にあるハッシュのバイトが返されます。他の列は、この行にも前の行にも含まれません。副署の場合、このルーチンは、行の副署を計算するデジタル署名アルゴリズムに入力されるバイトをrow_dataで返します。

構文

blockchain_table|bl get_bytes_for_row_signature {OPTIONS}

オプション

オプション 説明
必須
-table_name|-tab [table_name] ブロックチェーン表の名前を指定します。この名前の前に、それぞれのスキーマ名を付けることができます。大文字と小文字が区別されるスキーマ名または表名を指定するには、名前全体を二重引用符で囲んでから、個々の名前を二重の二重引用符で囲みます。

ノート:

大文字と小文字が区別される、空白文字が埋め込まれている表名およびスキーマ名は、"""Alp_ha"".""Be $a"""のように入力する必要があります。パーサーでは、これらの値は"Alp_ha"."Be $a"として解析されます。
instance_id、またはchain_idおよびsequence_id、またはkeycol1_nameおよびkeycol1_valueのどれか
-instance_id|-inst [instance_id] その行を挿入したインスタンスを指定します。指定した場合は、その操作が、指定したインスタンスによって挿入された行に限定されます。
   
-chain_id|-ch [chain_id] その行を含むチェーンを指定します。指定した場合は、その操作が、指定したチェーンに割り当てられている行に限定されます。デフォルトでは、各インスタンスに32個のチェーンがあり、0から31までの番号が付けられます。
-sequence_id|-seq <sequence_id> 指定したチェーンでのその行の位置を指定します。
-keycol1_name|-kc1name <keycol1_name> キー列の名前を指定します。
-keycol1_value|-kc1val <keycol1_value> キー列の値を指定します。
オプション
-data_format|-df <data_format> 指定した行にあるハッシュのデータ・レイアウトのバージョンを指定します。このリリースでは、1にする必要があります。デフォルトでは、このオプションの値は1に設定されています。
-row_data_file <row_data_file> 生成されたrow_data_bytesが保存されるファイルを指定します。
-keycol2_name|-kc2name <keycol2_name> コンポジット・キーの第2列の名前を指定します。
-keycol2_value|-kc2val <keycol2_value> コンポジット・キーの第2列の値を指定します。
-keycol3_name|-kc3name <keycol3_name> コンポジット・キーの第3列の名前を指定します。
-keycol3_value|-kc3val <keycol3_value> コンポジット・キーの第3列の値を指定します。
-pdb_guid <pdb_guid> V2ブロックチェーン表の場合の、行を挿入したプラガブル・データベースの識別子を指定します。指定した場合は、指定したプラガブル・データベースによって挿入されたシステム・チェーンへの注意が制限されます。V1ブロックチェーン表の場合は、これをNULLにする必要があります。
-type <type> 有効な値は、USER、DELEGATE、およびCOUNTERSIGNATUREです。DELEGATEUSERは区別なく使用できます。デフォルト値はUSERです。

COL1 = 100である、BCTAB1ブロックチェーン表内の行について、行署名のバイトを取得し、その出力を行データ・ファイルu1r1.datに格納します。

bl get_bytes_for_row_signature -tab u1.bctab1 -kc1name "COL1" -kc1val "100" -row_data_file <PATH_TO_FILE>/u1r1.dat

9.4.7 get_digest

ユーザー指定行または指定したブロックチェーン表について、ダイジェットの暗号化ハッシュを生成して返します。

構文

blockchain_table|bl get_digest {OPTIONS}

オプション

オプション 説明
必須
-table_name|-tab <table_name> ブロックチェーン表の名前を指定します。この名前の前に、それぞれのスキーマ名を付けることができます。大文字と小文字が区別されるスキーマ名または表名を指定するには、名前全体を二重引用符で囲んでから、個々の名前を二重の二重引用符で囲みます。

ノート:

大文字と小文字が区別される、空白文字が埋め込まれている表名およびスキーマ名は、"""Alp_ha"".""Be $a"""のように入力する必要があります。パーサーでは、これらの値は"Alp_ha"."Be $a"として解析されます。
-digest <digest> ダイジェストの16進表現が含まれている出力変数を指定します。これはOUTパラメータ・オプションであり、コマンドの出力値をバインド変数に格納するために使用されます。
オプション
-selector <selector> 条件(WHEREキーワードなしのWHERE句)を指定します。
-selector_file <selector_file> 条件(WHEREキーワードなしのWHERE句)を格納するファイルの名前を指定します。
-bytes_file <bytes_file> ダイジェストが含まれているファイルの名前を指定します。
-digest_file <digest_file> ダイジェストのバイナリ表現が含まれているファイルの名前を指定します。このダイジェスト値には、ヘッダーが含まれ、その後に行情報の配列が含まれています。
-row_data_file <row_data_file> 生成されたrow_data_bytesが保存されるファイルを指定します。
-row_indexes_file <row_indexes_file> ORABCTAB_ROW_ARRAY_T型のJSON表現が含まれているファイルの名前を指定します。
-algorithm|-algo <algorithm> 使用する暗号化ハッシュ・アルゴリズムを指定します。このパラメータは、次の定数のどれかにする必要があります:
  • SHA2_256
  • SHA2_384
  • SHA2_512

COL1 = 100またはCOL1 = 400である、BCTAB1ブロックチェーン表内の行について、ダイジェストを生成し、そのダイジェストをファイルdig.txtに格納します。

blockchain_table get_digest -tab u1.bctab1 -selector "COL1=100 OR COL1=400" -digest_file <PATH_TO_FILE>/dig.txt

9.4.8 get_signed_digest

データベース・ウォレットに格納されている表所有者の秘密キーを使用して、ブロックチェーン表内のユーザー指定行について(指定されている場合)署名付きダイジェストを生成して返します。

ダイジェスト内の特定の行は、selectorパラメータで指定します。このフィールドのデフォルト値はNULLです。signed_bytessigned_row_indexesおよびschema_certificate_guidも戻されます。

構文

blockchain_table|bl get_signed_digest {OPTIONS}

オプション

オプション 説明
必須
-table_name|-tab <table_name> ブロックチェーン表の名前を指定します。この名前の前に、それぞれのスキーマ名を付けることができます。大文字と小文字が区別されるスキーマ名または表名を指定するには、名前全体を二重引用符で囲んでから、個々の名前を二重の二重引用符で囲みます。

ノート:

大文字と小文字が区別される、空白文字が埋め込まれている表名およびスキーマ名は、"""Alp_ha"".""Be $a"""のように入力する必要があります。パーサーでは、これらの値は"Alp_ha"."Be $a"として解析されます。
-digest <digest> 署名ダイジェストの16進表現が含まれている出力変数を指定します。これはOUTパラメータ・オプションであり、コマンドの出力値をバインド変数に格納するために使用されます。
-digest_file <digest_file> 署名ダイジェストのバイナリ表現が含まれているファイルの名前を指定します。
オプション
-selector <selector> 条件(WHEREキーワードなしのWHERE句)を指定します。
-selector_file <selector_file> 条件(WHEREキーワードなしのWHERE句)を格納するファイルの名前を指定します。
-bytes_file <bytes_file> 署名されているダイジェストを含むファイルの名前を指定します。
-row_data_file <row_data_file> 生成されたrow_data_bytesが保存されるファイルを指定します。
-row_indexes_file <row_indexes_file> ORABCTAB_ROW_ARRAY_T型のJSON表現が含まれているファイルの名前を指定します。
-cert_guid|-cg <cert_guid> 証明書のグローバル一意識別子(GUID)を指定します。これはOUTパラメータ・オプションであり、コマンドの出力値をバインド変数に格納するために使用されます。
-algorithm|-algo <algorithm> 使用する暗号化ハッシュ・アルゴリズムを指定します。このフィールドのデフォルト値はDBMS_BLOCKCHAIN_TABLE.SIGN_ALGO_DEFAULTです。指定した場合は、このパラメータを、次のパッケージ定数のどれかにする必要があります:
  • RSA_SHA2_256
  • RSA_SHA2_384
  • RSA_SHA2_512

BCTAB1ブロックチェーン表について署名ダイジェストを生成し、そのダイジェストをバインド変数hexに格納します。

blockchain_table get_signed_digest -table_name u1.bctab1 -digest ":hex"

9.4.9 sign_row

このコマンドは、以前に挿入された行の行コンテンツに署名を提供するために現在のユーザーが使用できます。ブロックチェーン表に行を挿入したトランザクションは、SIGN_ROWコマンドが実行される前にコミットしておく必要があります。

構文

blockchain_table|bl sign_row|sign {OPTIONS}

オプション

オプション 説明
必須
-table_name|-tab <table_name> ブロックチェーン表の名前を指定します。この名前の前に、それぞれのスキーマ名を付けることができます。大文字と小文字が区別されるスキーマ名または表名を指定するには、名前全体を二重引用符で囲んでから、個々の名前を二重の二重引用符で囲みます。

ノート:

大文字と小文字が区別される、空白文字が埋め込まれている表名およびスキーマ名は、"""Alp_ha"".""Be $a"""のように入力する必要があります。パーサーでは、これらの値は"Alp_ha"."Be $a"として解析されます。
-cert_guid|-cg <cert_guid> 証明書のグローバル一意識別子(GUID)を指定します。
-instance_id|-inst <instance_id> その行を挿入したインスタンスを指定します。指定した場合は、その操作が、指定したインスタンスによって挿入された行に限定されます。
-chain_id|-ch <chain_id> その行を含むチェーンを指定します。指定した場合は、その操作が、指定したチェーンに割り当てられている行に限定されます。デフォルトでは、各インスタンスに32個のチェーンがあり、0から31までの番号が付けられます。
-sequence_id|-seq <sequence_id> 指定したチェーンでのその行の位置を指定します。
-signature|-sig <signature> その行に格納されているハッシュ値に対する、そのユーザーのデジタル署名の16進表現が保持されているバインド変数を指定します。
-algorithm|-algo <algorithm> デジタル署名の作成に使用されるアルゴリズムを指定します。このパラメータは、次の受入可能なリテラルのどれかにする必要があります:
  • RSA_SHA2_256
  • RSA_SHA2_384
  • RSA_SHA2_512
オプション
-row_hash <row_hash> non-Nullの場合の、署名対象の行にあるハッシュの想定値を指定します。NULLの場合は、署名対象となる行のハッシュはチェックされません。デフォルト値はNULLです。
-signature_file <signature_file> その行に格納されているハッシュ値に対する、そのユーザーのデジタル署名のバイナリ表現が保持されているファイルの名前を指定します。
-private_key_for_signature|-prvtkey <private_key_for_signature> 特定の行について署名バイトを使用して署名を生成するために使用される秘密キー・ファイルを指定します。生成された署名は、さらに特定の行に署名するために使用されます。秘密キーは、署名生成時にメモリーからクリアされます。
-wallet_path|-wallet <wallet_path> ウォレットの場所を指定します。'private_key_for_signature'を指定しなかった場合は、秘密キーが抽出され、指定したパスにあるウォレットから使用されます。
-wallet_password|-walletpw <wallet_password> ローカル・ウォレットにアクセスするためのパスワードを指定します。このパスワードは使用するとクリアされ、保持されません。ローカル・ウォレット・パスワードを指定しなかった場合は、対話型入力のためのプロンプトが表示されます。
-wallet_private_key_alias|-walletpvtkeyalias <wallet_private_key_alias> 署名生成用の秘密キーを指定します。指定しなかった場合は、システムにより、ローカル・ウォレットからの、指定したCERT_GUIDに関連付けられている秘密キーの取得が試みられます。
-wallet_private_key_password|-walletpvtkeypw <wallet_private_key_password> 指定したwallet_pathに格納されている秘密キーへのアクセスに必要なパスワードを指定します。
-keycol1_name|-kc1name <keycol1_name> キー列の名前を指定します。
-keycol1_value|-kc1val <keycol1_value> キー列の値を指定します。
-keycol2_name|-kc2name <keycol2_name> コンポジット・キーの第2列の名前を指定します。
-keycol2_value|-kc2val <keycol2_value> コンポジット・キーの第2列の値を指定します。
-keycol3_name|-kc3name <keycol3_name> コンポジット・キーの第3列の名前を指定します。
-keycol3_value|-kc3val <keycol3_value> コンポジット・キーの第3列の値を指定します。
-data_format|-df <data_format> 指定した行にあるハッシュのデータ・レイアウトのバージョンを指定します。このリリースでは、1にする必要があります。デフォルトでは、このオプションの値は1に設定されています。
-pdb_guid <pdb_guid> V2ブロックチェーン表の場合の、行を挿入したプラガブル・データベースの識別子を指定します。V1ブロックチェーン表の場合は、これをNULLにする必要があります。
-type <type> typeに対する有効な値は、USERDELEGATEです。これらの値は区別なく使用できます。デフォルト値はUSERです。

バインド変数INSTANCE_IDCHAIN_IDおよびSEQUENCE_IDによって特定された、BCTAB1ブロックチェーン表内の行に、バインド変数CERTIDにある証明書ID、ROWHASHにある行ハッシュ、およびRSA_SHA2_512アルゴリズムを使用して署名します。

blockchain_table sign_row -tab u1.bctab1 -inst ":instid" -ch ":chainid" -seq ":seqid" -row_hash  ":rowhash" -sig ":signature" -cg ":certid" -algo  "RSA_SHA2_512"

9.4.10 sign_row_with_countersignature

データベースからの副署をユーザーが要求できるようにします。

このコマンドは、SIGN_ROWコマンドの拡張です。副署は、データベース・ウォレットに格納されている表所有者の秘密キーを使用して行データ・コンテンツに署名することで生成されます。ブロックチェーン表の行に副署できるのは、その行がブロックチェーン表の現在のエポックに属している場合のみです。

構文

blockchain_table|bl sign_row_with_countersignature|signandcountersign {OPTIONS}

オプション

オプション 説明
必須
-table_name|-tab <table_name> ブロックチェーン表の名前を指定します。この名前の前に、それぞれのスキーマ名を付けることができます。大文字と小文字が区別されるスキーマ名または表名を指定するには、名前全体を二重引用符で囲んでから、個々の名前を二重の二重引用符で囲みます。

ノート:

大文字と小文字が区別される、空白文字が埋め込まれている表名およびスキーマ名は、"""Alp_ha"".""Be $a"""のように入力する必要があります。パーサーでは、これらの値は"Alp_ha"."Be $a"として解析されます。
instance_id、またはchain_idおよびsequence_id、またはkeycol1_nameおよびkeycol1_valueのどれかが必要です
-instance_id|-inst <instance_id> その行を挿入したインスタンスを指定します。指定した場合は、その操作が、指定したインスタンスによって挿入された行に限定されます。
-chain_id|-ch <chain_id> その行を含むチェーンを指定します。指定した場合は、その操作が、指定したチェーンに割り当てられている行に限定されます。デフォルトでは、各インスタンスに32個のチェーンがあり、0から31までの番号が付けられます。
-sequence_id|-seq <sequence_id> 指定したチェーンでのその行の位置を指定します。
-keycol1_name|-kc1name <keycol1_name> キー列の名前を指定します。
-keycol1_value|-kc1val <keycol1_value> キー列の値を指定します。
signature、signature_file、private_key_for_signatureまたはwallet_pathのどれか
-signature|-sig <signature> その行に格納されているハッシュ値に対する、そのユーザーのデジタル署名の16進表現が保持されているバインド変数を指定します。
-signature_file <signature_file> その行に格納されているハッシュ値に対する、そのユーザーのデジタル署名のバイナリ表現が保持されているファイルの名前を指定します。
-private_key_for_signature|-prvtkey <private_key_for_signature> 特定の行について署名バイトを使用して署名を生成するために使用される秘密キー・ファイルを指定します。生成された署名は、さらに特定の行に署名するために使用されます。秘密キーは、署名生成時にメモリーからクリアされます。
-wallet_path|-wallet <wallet_path> ローカル・ウォレットの場所を指定します。
-cert_guid|-cg <cert_guid> 証明書のグローバル一意識別子(GUID)を指定します。
-algorithm|-algo <algorithm> デジタル署名の作成に使用されるアルゴリズムを指定します。このパラメータは、次の受入可能なリテラルのどれかにする必要があります:
  • RSA_SHA2_256
  • RSA_SHA2_384
  • RSA_SHA2_512
オプション
-row_hash <row_hash> non-Nullの場合の、署名対象の行にあるハッシュの想定値を指定します。NULLの場合は、署名対象となる行のハッシュはチェックされません。デフォルト値はNULLです。
-wallet_password|-walletpw <wallet_password> ローカル・ウォレットにアクセスするためのパスワードを指定します。このパスワードは使用するとクリアされ、保持されません。ローカル・ウォレット・パスワードを指定しなかった場合は、対話型入力のためのプロンプトが表示されます。
-wallet_private_key_alias|-walletpvtkeyalias <wallet_private_key_alias> 署名生成用の秘密キーを指定します。指定しなかった場合は、システムにより、ローカル・ウォレットからの、指定したCERT_GUIDに関連付けられている秘密キーの取得が試みられます。
-wallet_private_key_password|-walletpvtkeypw <wallet_private_key_password> 指定したwallet_pathに格納されている秘密キーへのアクセスに必要なパスワードを指定します。
-keycol2_name|-kc2name <keycol2_name> コンポジット・キーの第2列の名前を指定します。
-keycol2_value|-kc2val <keycol2_value> コンポジット・キーの第2列の値を指定します。
-keycol3_name|-kc3name <keycol3_name> コンポジット・キーの第3列の名前を指定します。
-keycol3_value|-kc3val <keycol3_value> コンポジット・キーの第3列の値を指定します。
-data_format|-df <data_format> 指定した行にあるハッシュのデータ・レイアウトのバージョンを指定します。このリリースでは、1にする必要があります。デフォルトでは、このオプションの値は1に設定されています。
-type <type> typeに対する有効な値は、USERDELEGATEです。これらの値は区別なく使用できます。デフォルト値はUSERです。
-countersignature_algorithm|-countersignalgo <countersignature_algorithm> 副署に使用する暗号化ハッシュ・アルゴリズムを指定します。このフィールドのデフォルト値はDBMS_BLOCKCHAIN_TABLE.SIGN_ALGO_DEFAULTです。指定した場合は、このパラメータを、次の受入可能なリテラルのどれかにする必要があります:
  • RSA_SHA2_256
  • RSA_SHA2_384
  • RSA_SHA2_512
-bytes_file <bytes_file> 署名された副署のバイトが含まれているファイルの名前を指定します。
-countersignature|-csig <countersignature> bytes_fileで返されたバイトに対するデジタル署名を指定します。これはOUTパラメータ・オプションであり、コマンドの出力値をバインド変数に格納するために使用されます。
-countersign_cert_guid|-cscg <countersign_cert_guid> 副署の検証に使用できる、データベースに格納されているブロックチェーン表所有者の証明書の一意の識別子を指定します。これはOUTパラメータ・オプションであり、コマンドの出力値をバインド変数に格納するために使用されます。
-content_version <content_version> 副署アルゴリズムへの入力として使用されるデータ・コンテンツおよびレイアウトのバージョンを指定します。このリリースでは、V2_DIGESTのみがサポートされています。
-pdb_guid <pdb_guid> V2ブロックチェーン表の場合の、行を挿入したプラガブル・データベースの識別子を指定します。V1ブロックチェーン表の場合は、これをNULLにする必要があります。

  • バインド変数:INST_ID:CHAIN_IDおよび:SEQ_IDによって特定された、U1.BCTAB1ブロックチェーン表内の行に、行ハッシュ:ROWHASH、証明書ID :CERT_ID2およびRSA_SHA2_512アルゴリズムを使用して署名および副署します。この署名は、u1r11_sign.datファイルにある内容を使用して生成されます。

    bl signandcountersign -tab u1.bctab1 -inst ":inst_id" -ch ":chain_id" -seq ":seq_id" -row_hash ":row_hash" -signature_file
    <PATH_TO_FILE>/u1r11_sign.dat -cert_guid ":cert_id2" -algo "RSA_SHA2_512"
  • :INST_ID:CHAIN_IDおよび:SEQ_IDによって特定された、U1.BCTAB1ブロックチェーン表内の行に対して、行ハッシュ:ROWHASH、署名者証明書ID :CERT_ID2を使用して署名および副署を実行し、副署に使用された副署者証明書ID:CERT_GUIDを返します。RSA_SHA2_512アルゴリズムは、署名と副署の両方に使用されます。署名はファイルu1r11_sign.datを使用して生成され、副署は:CSIGを使用して16進形式で提供され、countersignBytes.txtを使用してバイナリ形式が提供されます。

    blockchain_table sign_row_with_countersignature -tab u1.bctab1 -inst ":inst_id" -ch ":chain_id" -seq ":seq_id" -row_hash ":row_hash" -signature_file
    <PATH_TO_FILE>/u1r11_sign.dat -cert_guid ":cert_id2" -algo "RSA_SHA2_512" -cscg ":cert_guid" -bytes_file <PATH_TO_FILE>/countersignBytes.txt -csig ":csig"
    -countersignalgo "RSA_SHA2_512"
  • 証明書ID:CERT_ID2RSA_SHA2_512アルゴリズムを使用して、COL1 = 1200であるU1.BCTAB1ブロックチェーン表内の行に署名および副署します。署名は、ファイルu1r12_sign.datから生成されます。

    bl signandcountersign -tab u1.bctab1 -kc1name "COL1" -kc1val "1200" -signature_file <PATH_TO_FILE>/u1r12_sign.dat -cert_guid ":cert_id2" -algo
    "RSA_SHA2_512"

9.4.11 verify_rows

適用可能なすべてのシステム・チェーンにあるすべての行について、low_timestampからhigh_timestampまでの範囲内で作成された行のHASH列値の整合性を検証します。行の署名は、オプションとして検証できます。チェーンの整合性が損なわれている場合は、該当する例外がトリガーされます。

構文

blockchain_table|bl verify_rows {OPTIONS}

オプション

オプション 説明
必須
-table_name|-tab <table_name> ブロックチェーン表の名前を指定します。この名前の前に、それぞれのスキーマ名を付けることができます。大文字と小文字が区別されるスキーマ名または表名を指定するには、名前全体を二重引用符で囲んでから、個々の名前を二重の二重引用符で囲みます。

ノート:

大文字と小文字が区別される、空白文字が埋め込まれている表名およびスキーマ名は、"""Alp_ha"".""Be $a"""のように入力する必要があります。パーサーでは、これらの値は"Alp_ha"."Be $a"として解析されます。
オプション
-low_timestamp|-low <low_timestamp> 時間範囲の下限を指定します。指定した場合は、その時間範囲の下限が行の検証に使用されます。デフォルト値はNULLです。値を囲むには二重引用符を使用します。

ノート:

low_timestampは、NLS_TIMESTAMP_FORMATまたはNLS_TIMESTAMP_TZ_FORMATに従って指定する必要があります。
.
-high_timestamp|-high <high_timestamp> 時間範囲の上限を指定します。指定した場合は、その時間範囲の上限が行の検証に使用されます。デフォルト値はNULLです。値を囲むには二重引用符を使用します。

ノート:

high_timestampは、NLS_TIMESTAMP_FORMATまたはNLS_TIMESTAMP_TZ_FORMATに従って指定する必要があります。
-instance_id|-inst <instance_id> その行を挿入したインスタンスを指定します。指定した場合は、その操作が、指定したインスタンスによって挿入された行に限定されます。
-chain_id|-ch <chain_id> その行を含むチェーンを指定します。指定した場合は、その操作が、指定したチェーンに割り当てられている行に限定されます。デフォルトでは、各インスタンスに32個のチェーンがあり、0から31までの番号が付けられます。
-rowcount <rowcount> 検証された行の数を指定します。これはOUTパラメータ・オプションであり、コマンドの出力値をバインド変数に格納するために使用されます。
-skip_user_signature|-skipuser SKIP_USER_SIGNATUREに対するtrueまたはfalseを指定します。デフォルト値はFALSEです。
  • SKIP_USER_SIGNATUREを指定した場合(trueに設定)、ブロックチェーンのverify_rows SQLclコマンドでは、行に対してユーザー署名が存在するときは、その署名の検証がバイパスされます。
  • SKIP_USER_SIGNATUREを指定しなかった場合(falseに設定)、ハッシュとユーザー署名が両方存在するときはすべての行に対してそれらが検証され、そうでないときはハッシュのみが検証されます。
-skip_delegate_signature|-skipdlg SKIP_DELEGATE_SIGNATUREに対するtrueまたはfalseを指定します。デフォルト値はFALSEです。
  • SKIP_DELEGATE_SIGNATUREを指定した場合(trueに設定)、ブロックチェーンのverify_rows SQLclコマンドでは、行に対して委任署名が存在するときは、その署名の検証がバイパスされます。
  • SKIP_DELEGATE_SIGNATUREを指定しなかった場合(falseに設定)、ハッシュと委任署名が両方存在するときはすべての行に対してそれらが検証され、そうでないときはハッシュのみが検証されます。
-skip_countersignature|-skipctr SKIP_COUNTERSIGNATUREに対するtrueまたはfalseを指定します。デフォルト値はFALSEです。
  • SKIP_COUNTERSIGNATUREを指定した場合(trueに設定)、ブロックチェーンのverify_rows SQLclコマンドでは、行に対して副署が存在するときは、その副署の検証がバイパスされます。
  • SKIP_COUNTERSIGNATUREを指定しなかった場合(falseに設定)、ハッシュと副署が両方存在するときはすべての行に対してそれらが検証され、そうでないときはハッシュのみが検証されます。
-pdb_guid <pdb_guid> V2ブロックチェーン表の場合の、行を挿入したプラガブル・データベースの識別子を指定します。V1ブロックチェーン表の場合は、これをNULLにする必要があります。

BCTAB1ブロックチェーン表内のすべての行の整合性を検証します。

blockchain_table verify_rows -table_name u1.bctab1

9.4.12 verify_table

作成時間がbegin_bytes_file内の行作成時間の最小値からend_bytes_file内の行作成時間の最大値までの範囲内である行すべてについて、署名とシステム・チェーンを検証します。OUTパラメータrow countでは、正常に検証された行の数が返されます。

構文

 blockchain_table|bl verify_table {OPTIONS}

オプション

オプション 説明
必須
-end_bytes_file <end_bytes_file> 次のことによって移入されるダイジェストを指定します: 次のどちらかのコール

PL/SQL APIの (GET_SIGNED_BLOCKCHAIN_DIGESTGET_SIGNED_BLOCKCHAIN_DIGEST_FOR_SELECTED_ROWS、GET_BLOCKCHAIN_DIGESTまたはGET_BLOCKCHAIN_DIGEST_FOR_SELECTED_ROWS)

または

SQLclコマンド(blockchain_table get_digestまたはget_signed_digestコマンド)の実行。

-begin_bytes_file <begin_bytes_file> 次のことによって移入されるダイジェストを指定します: 次のどちらかのコール

PL/SQL APIの(GET_SIGNED_BLOCKCHAIN_DIGESTGET_SIGNED_BLOCKCHAIN_DIGEST_FOR_SELECTED_ROWSGET_BLOCKCHAIN_DIGESTまたはGET_BLOCKCHAIN_DIGEST_FOR_SELECTED_ROWS)

または

end_bytes_fileに移入される前のSQLclコマンド(blockchain_table get_digestまたはget_signed_digestコマンド)の実行。

オプション
-rowcount <rowcount> 検証された行の数を指定します。これはOUTパラメータ・オプションであり、コマンドの出力値をバインド変数に格納するために使用されます。
-skip_user_signature|-skipuser SKIP_USER_SIGNATUREに対するtrueまたはfalseを指定します。デフォルト値はFALSEです。
  • SKIP_USER_SIGNATUREを指定した場合(trueに設定)、ブロックチェーンのverify_table SQLclコマンドでは、行に対してユーザー署名が存在するときは、その署名の検証がバイパスされます。
  • SKIP_USER_SIGNATUREを指定しなかった場合(falseに設定)、ハッシュとユーザー署名が両方存在するときはすべての行に対してそれらが検証され、そうでないときはハッシュのみが検証されます。
-skip_delegate_signature|-skipdlg SKIP_DELEGATE_SIGNATUREに対するtrueまたはfalseを指定します。デフォルト値はFALSEです。
  • SKIP_DELEGATE_SIGNATUREを指定した場合(trueに設定)、ブロックチェーンのverify_table SQLclコマンドでは、行に対して委任署名が存在するときは、その署名の検証がバイパスされます。
  • SKIP_DELEGATE_SIGNATUREを指定しなかった場合(falseに設定)、ハッシュと委任署名が両方存在するときはすべての行に対してそれらが検証され、そうでないときはハッシュのみが検証されます。
-skip_countersignature|-skipctr SKIP_COUNTERSIGNATUREに対するtrueまたはfalseを指定します。デフォルト値はFALSEです。
  • SKIP_COUNTERSIGNATUREを指定した場合(trueに設定)、ブロックチェーンのverify_table SQLclコマンドでは、行に対して副署が存在するときは、その副署の検証がバイパスされます。
  • SKIP_COUNTERSIGNATUREを指定しなかった場合(falseに設定)、ハッシュと副署が両方存在するときはすべての行に対してそれらが検証され、そうでないときはハッシュのみが検証されます。

終了バイト・ファイルlatest.txtと開始バイト・ファイルprev1.txtによって定義されているダイジェストを検証し、検証された行の数をバインド変数rowcountに格納します。

blockchain_table verify_table -end_bytes_file <PATH_TO_FILE>/latest.txt -begin_bytes_file <PATH_TO_FILE>/prev1.txt -rowcount ":temp"

9.4.13 verify_user_chains

ブロックチェーン表に対してユーザー・チェーン機能が有効になっている場合に、ユーザー・チェーン1つ以上の行を検証します。

構文
blockchain_table|bl verify_user_chains {OPTIONS}

オプション

オプション 説明
必須
-table_name|-tab <table_name> ブロックチェーン表の名前を指定します。この名前の前に、それぞれのスキーマ名を付けることができます。大文字と小文字が区別されるスキーマ名または表名を指定するには、名前全体を二重引用符で囲んでから、個々の名前を二重の二重引用符で囲みます。

ノート:

大文字と小文字が区別される、空白文字が埋め込まれている表名およびスキーマ名は、"""Alp_ha"".""Be $a"""のように入力する必要があります。パーサーでは、これらの値は"Alp_ha"."Be $a"として解析されます。
-user_chain|-uchain <user_chain> ブロックチェーン表の作成時に指定した行バージョンの名前を指定します。
オプション
-rowcount <rowcount> 検証された行の数を指定します。これはOUTパラメータ・オプションであり、コマンドの出力値をバインド変数に格納するために使用されます。
-keycol1_value|-kc1val <keycol1_value> キー列の値を指定します。
-keycol2_value|-kc2val <keycol2_value> コンポジット・キーの第2列の値を指定します。
-keycol3_value|-kc3val <keycol3_value> コンポジット・キーの第3列の値を指定します。
-low_timestamp|-low <low_timestamp> 時間範囲の下限を指定します。指定した場合は、その時間範囲の下限が行の検証に使用されます。デフォルト値はNULLです。値を囲むには二重引用符を使用します。

ノート:

low_timestampは、NLS_TIMESTAMP_FORMATまたはNLS_TIMESTAMP_TZ_FORMATに従って指定する必要があります。
-high_timestamp|-high <high_timestamp> 時間範囲の上限を指定します。指定した場合は、その時間範囲の上限が行の検証に使用されます。デフォルト値はNULLです。値を囲むには二重引用符を使用します。

ノート:

high_timestampは、NLS_TIMESTAMP_FORMATまたはNLS_TIMESTAMP_TZ_FORMATに従って指定する必要があります。
-skip_user_signature|-skipuser SKIP_USER_SIGNATUREに対するtrueまたはfalseを指定します。デフォルト値はFALSEです。
  • SKIP_USER_SIGNATUREを指定した場合(trueに設定)、ブロックチェーンのverify_user_chains SQLclコマンドでは、行に対してユーザー署名が存在するときは、その署名の検証がバイパスされます。
  • SKIP_USER_SIGNATUREを指定しなかった場合(falseに設定)、ハッシュとユーザー署名が両方存在するときはすべての行に対してそれらが検証され、そうでないときはハッシュのみが検証されます。
-skip_delegate_signature|-skipdlg SKIP_DELEGATE_SIGNATUREに対するtrueまたはfalseを指定します。デフォルト値はFALSEです。
  • SKIP_DELEGATE_SIGNATUREを指定した場合(trueに設定)、ブロックチェーンのverify_user_chains SQLclコマンドでは、行に対して委任署名が存在するときは、その署名の検証がバイパスされます。
  • SKIP_DELEGATE_SIGNATUREを指定しなかった場合(falseに設定)、ハッシュと委任署名が両方存在するときはすべての行に対してそれらが検証され、そうでないときはハッシュのみが検証されます。
-skip_countersignature|-skipctr SKIP_COUNTERSIGNATUREに対するtrueまたはfalseを指定します。デフォルト値はFALSEです。
  • SKIP_COUNTERSIGNATUREを指定した場合(trueに設定)、ブロックチェーンのverify_user_chains SQLclコマンドでは、行に対して副署が存在するときは、その副署の検証がバイパスされます。
  • SKIP_COUNTERSIGNATUREを指定しなかった場合(falseに設定)、ハッシュと副署が両方存在するときはすべての行に対してそれらが検証され、そうでないときはハッシュのみが検証されます。
-pdb_guid <pdb_guid> V2ブロックチェーン表の場合の、行を挿入したプラガブル・データベースの識別子を指定します。V1ブロックチェーン表の場合は、これをNULLにする必要があります。

BCTAB1ブロックチェーン表内のBCTAB1_COL2ユーザー・チェーンの行を検証します。

bl verify_user_chains -tab u1.bctab1 -uchain "bctab1_col2"