17.10 - 永久データベース ユーザーのセッション制約値 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-171K-JPN
Language
日本語 (日本)

永久データベース ユーザーが、セキュリティ制約で保護された行にアクセスすると、システムはセッション制約値を次のように決定します。

  1. ユーザー プロファイルに、対応するセキュリティ制約の割り当てがある場合、セッションではプロファイル定義で指定された制約値が使用されます。
  2. ユーザー プロファイルにセキュリティ制約の指定がない場合、システムはセッション制約値をユーザー定義から引き出します。
  3. ユーザー制約値がプロファイルまたはユーザー定義で定義されているか、複数の制約値が定義されているかに応じて、セッション値が次のように決定されます。
    • 階層型(非セット)制約の場合、プロファイルで指定されたDEFAULT値が使用されるか、プロファイルがない場合はユーザー定義で指定されたDEFAULT値が使用されます。DEFAULTが指定されていない場合、制約用にリストされた最初の値が使用されます。
    • 非階層型(セット)制約の場合、セッションではプロファイル内のすべての制約値が使用されます。プロファイルがない場合は、ユーザー定義のすべての制約値が使用されます。DEFAULTは指定できません。
      要求元のユーザーはSET SESSION CONSTRAINTを使用して、プロファイルまたはユーザー定義で指定された任意の制約値にセッション制約値を変更できます。
  4. ユーザー プロファイルまたはユーザー定義のどちらにもセキュリティ制約の割り当てが含まれていない場合、セッションの制約値はNULLになり、ユーザーは、必要なOVERRIDE権限が割り当てられている場合にのみ、セキュリティ制約で制御された行にアクセスできます。
  5. ユーザーにオブジェクトおよび実行中の操作へのOVERRIDE権限がある場合、プロファイルまたはユーザー定義で割り当てられた制約は無視されます。セッションでは、セキュリティ制約値を次のいずれかの方法で引き出します。
    • 簡単な挿入の場合、ユーザーは制約値を指定する必要があります。
    • INSERT … SELECTやMERGEなどの複合文の場合は、システムはソース テーブルのセキュリティ制約列から制約値を引き出します。
    • ユーザーはSET SESSION CONSTRAINTを使用して、制約値を指定できます。