17.00 - 17.05 - セキュリティ制約UDFの本体 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1147-170K-JPN
Language
日本語 (日本)

INSERT、UPDATE、DELETEおよびSELECTのUDFは、現行セッションのセキュリティ ラベルや対象行のセキュリティ ラベルの入力引数を受け取り、それらのセキュリティ値をUDFで定義したセキュリティ ポリシーのルールと比較して、INSERT、UPDATE、DELETEまたはSELECTを許可するかどうかを決定します。

セキュリティ制約UDFは、入力値がセキュリティ ポリシーを満たすかどうかに応じてTrueまたはFalseの結果を返します。INSERT UDFとUPDATE UDFは、SQLリクエストがセキュリティ ポリシーを満たした場合に、現行セッションのセキュリティ ラベルも返します。セキュリティ制約UDFの有効な戻り値についての詳細は、INSERT UDFまたはUPDATE UDFの戻り値およびSELECT UDFまたはDELETE UDFの戻り値を参照してください。

次のセキュリティ ポリシー ルールの例では、セキュリティ制約UDFを作成する際のガイドを示します。このルールは、Bell-Lapadulaモデルに基づいています。このモデルは、アクセス制御を実施するために政府や軍事目的で広く使用されています。

No Read Up (SELECT操作が対象):
  • セッション階層レベルは、行階層レベル以上である必要があります。

    ユーザーは上位に等級分けされたデータを読み取ることができません。

  • セッション ラベルには、行ラベルに存在する階層化されていないコンポーネントを、すべて含める必要があります。

    ユーザーには、その行の下位に等級分けされたすべてのコンポーネントが割り当てられている必要があります。

No Write Down (INSERT/UPDATE操作):
  • 行階層レベルは、セッション階層レベル以上である必要があります。

    新規の行または更新された行は、セッションのレベルを継承します。このルールによって、更新を実行するユーザーが誤って行を上位レベルに再等級化することを防止します。

  • 行ラベルには、セッション ラベルに存在する階層化されていないコンポーネントが、すべて含まれている必要があります。

    新しい行または更新された行は、すべてのセッション コンパートメントを継承します。このルールは、更新を行なうユーザーが誤って過剰なコンパートメント分類を行に追加することを防止します。

サンプルのルールには、DELETEポリシーについての推奨事項が含まれていませんが、通常は行の等級解除が必要になります。つまり、行を削除するには、等級レベルを最低に設定するか、NULLに設定する必要があるということです。

セキュリティ等級のカテゴリおよびラベルの詳細について、<Teradata Vantage™ - Advanced SQL Engineセキュリティ管理ガイド、B035-1100>を参照してください。