ケース スタディー:ビューに対するSELECTの付与 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Published
2021年7月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/sqd1591723147563.ditamap
dita:ditavalPath
ja-JP/wrg1590696035526.ditaval
dita:id
B035-1149
Product Category
Software
Teradata Vantage

Allenというユーザーが、Allen.BaseTableというテーブルとそのテーブルのAllen.ViewAというビューの2つのオブジェクトを作成したと想定します。システムは、Allen.BaseTableの作成時に、AllenがViewAに対するSELECT権限を持っているかどうかを検証します。

さらに、AllenがBobbyというユーザーに、ViewAに対するSELECT権限を与えたと想定します。Bobbyは次に、Bobby.ViewBを参照するAllen.ViewAを作成します。構文解析プログラムは、Allen.ViewAの作成時に、BobbyがBobby.ViewBに対するSELECT権限を持っているかどうかを検証します。

このプロセスをまとめると、次のようになります。

  1. Allenが、基本テーブルAllen.BaseTableを作成する。
  2. Allenが、Allen.BaseTableを参照するビューAllen.ViewAを作成する。

    Allenは、Allen.BaseTableに対するSELECT権限を持っている。

  3. Allenが、Allen.ViewAに対するSELECT権限をBobbyに付与する。
  4. Bobbyが、Allen.ViewAを参照するBobby.ViewBを作成する。

    Bobbyは、Allen.ViewAに対するSELECT権限を持っている。

BobbyはChuckというユーザーに、Bobby.ViewBに対するSELECT権限を与えるとします。Bobbyは権限をChuckに付与できますが、AllenがAllen.ViewAに対するSELECT権限をWITH GRANT OPTION付きでBobbyに付与しない限り、Chuckは問合わせでビューを使用できません。

マクロがその作成者以外のユーザーにより所有されているオブジェクトを参照する場合も、同じ権限が必要です。例えば、マクロBobby.MacroBが、Allen.ViewAから行を削除するとします。

他のユーザーは、BobbyがBobby.MacroBに対するWITH GRANT OPTION付きのEXECUTE権限を持っていない限り、Bobby.MacroBを実行できません。