行レベル セキュリティのためのオブジェクト レベル権限 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ制御言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
2020年6月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/lmb1556233084626.ditamap
dita:ditavalPath
ja-JP/lmb1556233084626.ditaval
dita:id
B035-1149
Product Category
Software
Teradata Vantage

管理者は、ユーザーがデータベース オブジェクトで定義されている行レベル セキュリティを一時的に回避(上書き)できるようにする目的で、これらの権限を付与することができます。これらの権限はユーザーが行レベル セキュリティ ポリシー制限を上書きすることを可能にするため、上書き権限と呼ばれます。

上書き権限には、次の2つの基本的なタイプがあります。

DML制限上書き権限

これらのオブジェクト レベルの権限は、ユーザーが、削除、挿入、選択および更新操作を禁止する行レベル セキュリティ制限を持つ表に対してDMLリクエストを実行できるようにします。

管理者はこれらの権限を付与することにより、ユーザーがDMLリクエストを実行して削除、挿入、選択および更新などの禁止されている操作を一時的に実行できるようにすることができます。

これらの権限は、次のように付与することが可能です。
  • ユーザーとロールに付与する。
  • テーブルまたは制約列に対して付与する。
DML制限上書き権限は、次のようになります。
  • OVERRIDE DELETE CONSTRAINT

    宛先表に対して付与された場合、ユーザーはその表に適用されるDELETE制約関数のそれぞれに含まれるDELETEセキュリティ ポリシーの妥当性検査を回避できます。

    制約列に対して付与された場合、ユーザーは特定の制約関数のDELETEセキュリティ ポリシーの妥当性検査を回避できます。

    この権限が宛先表に対して付与された場合も、ユーザーが表のすべての行を削除することはできません。これは、表に対するDELETEがSELECT制約関数によっても制約されており、ユーザーがアクセスを許可されていない行は除外されるためです。すべての行を削除するには、ユーザーがすべてのDELETEおよびSELECT制約検査を回避できる必要があります。
  • OVERRIDE INSERT CONSTRAINT

    ユーザーがINSERTリクエストを実行してINSERT行レベル セキュリティ制約を持つ列の値を指定できるようにします。

    INSERTリクエストには、制約列に割り当てられた値が含まれる必要があります。Teradata Databaseは、制約列に割り当てられた値が制約の「名前:コード」ペアによって指定されているものであることを検証します。

  • OVERRIDE SELECT CONSTRAINT

    単一の制約列に対して付与された場合、ユーザーはその制約列に関連付けられたSELECT制約関数内のセキュリティ ポリシーを回避できます。これは、ユーザーが単一の行を取得することを許可するために使用されます。

    すべての制約列に対して付与された場合、ユーザーは表のすべての制約列に関連付けられたSELECT制約関数内のセキュリティ ポリシーを回避できるため、表のすべての列を取得できます。

  • OVERRIDE UPDATE CONSTRAINT

    ユーザーが、UPDATEリクエストを実行してUPDATE行レベル セキュリティ制約を持つ列に関するSET句の値を指定できるようにします。

行レベル セキュリティ制約を持つ表に対して実行できるDMLリクエストのタイプごとに、行レベル セキュリティ制約関数(UDF)を作成できます。あるタイプのDMLリクエストについて制約関数が存在しない場合、そのリクエストを実行できるのは、そのタイプのリクエストに関する上書き権限を持っているユーザーだけです。

これらの権限の付与に関するルール

これらの権限は、次の方式でのみ付与できます。
  • ユーザーとロールに付与する。
  • 行レベル セキュリティを持つテーブルが含まれるデータベースに対して付与する。
  • 行レベル セキュリティを持つテーブルに対して付与する。
  • 制約列(行レベル セキュリティ制約を持つ列)に対して付与する。
DML制限上書き権限の付与に関する追加のルールと制限は次のとおりです。
  • これらの権限を付与するには、CONSTRAINT ASSIGNMENT権限が必要です。
  • WITH GRANT OPTIONを指定してこれらの権限を付与することはできません。

    WITH GRANT OPTIONを指定してこれらの権限のいずれかを付与しようとすると、Teradata Databaseはリクエストをアボートしてエラーを返します。

  • GRANTリクエストでは、権限を付与する対象の行レベル セキュリティ制約オブジェクトの名前を指定する必要があります。
  • GRANTリクエストの宛先オブジェクトは、データベース、行レベル セキュリティを持つ表(1つ以上の行レベル セキュリティ制約を持つ表)、または制約列である必要があります。1つ以上の行レベル セキュリティ制約を持たない表、または制約を持たない列に対するOVERRIDE CONSTRAINT権限を付与しようとすると、エラーが返されます。
リクエストの宛先 必要な上書き権限の対象オブジェクト
データベース 指定されたデータベース内のすべてのテーブルのすべての制約列。
テーブル 指定された表のすべての制約列。
該当する列。

アーカイブ/リカバリー制限上書き権限

これらのオブジェクト レベル権限は、ユーザーが行レベル セキュリティ制約を持つ表や行レベル セキュリティ制約を持つ表を含むデータベースをアーカイブまたは復元するためにアーカイブ/リカバリー ユーティリティ コマンドを実行することを可能にします。管理者はデータベースまたは表に対するこれらの権限を付与できます。

DML制限上書き権限とは異なり、これらの権限では、制約関数(UDF)で定義された行レベル セキュリティ ポリシーを回避できません。

行レベル セキュリティ制約を持つ表や行レベル セキュリティ制約を持つ表のあるデータベースをアーカイブまたは復元する場合、これらの権限では不十分です。アーカイブまたは復元する表やデータベースに対するDUMPまたはRESTORE権限も必要です。
アーカイブ/回復上書き権限は次のとおりです。
  • OVERRIDE DUMP CONSTRAINT

    ユーザーが、アーカイブ/リカバリー ユーティリティのARCHIVEコマンドを実行して、1つ以上の行レベル セキュリティ制約列と共に定義されたデータベース オブジェクトをアーカイブできるようにします。ARCHIVEコマンドのすべての宛先オブジェクトで必要です。

  • OVERRIDE RESTORE CONSTRAINT

    ユーザーが、1つ以上の行レベル セキュリティ制約列と共に定義されたデータベース オブジェクトに対して、アーカイブ/リカバリー ユーティリティのCOPYおよびRESTOREコマンドを実行できるようにします。COPYおよびRESTOREコマンドのすべての宛先オブジェクトで必要です。

アーカイブ/回復上書き権限の付与に関するルールと制限は次のとおりです。
  • これらの権限を付与するには、CONSTRAINT ASSIGNMENT権限が必要です。
  • データベースやテーブルでユーザーおよびロールに対して付与できるのはこれらの権限だけです。
  • WITH GRANT OPTIONを指定してこれらの権限を付与することはできません。

    WITH GRANT OPTIONを指定してこれらの権限のいずれかを付与しようとすると、Teradata Databaseはリクエストをアボートしてエラーを返します。

  • GRANTリクエストでは、権限を付与する対象の行レベル セキュリティ制約オブジェクトの名前を指定する必要があります。
  • GRANTリクエストの宛先オブジェクトは、データベース、テーブルまたは制約列である必要があります。