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

Teradata Vantage™ SQLデータ制御言語

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/jlw1513306913964.ditamap
dita:ditavalPath
ja-JP/jlw1513306913964.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を実行できません。