CREATE MACRO権限のセキュリティに関する考慮事項 - 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

データベースまたはユーザーに対するCREATE MACRO権限を付与する前に、権限の受領者がそのデータベースまたはユーザーのすべての権限を持つマクロを作成して実行できることを理解しておいてください。これは、CREATE MACROでは、権限はマクロの作成者でなく所有者から継承されるためです。

その結果、受領者は作成者の権限が検査されないDCLおよびDDL文を含むマクロを作成できます。つまり、マクロ作成者には、実行する明示的、暗黙的、または自動的な権限を持たない権限が、暗黙に割り当てられることになります。これは望ましい結果にならないことがあるので、この権限を与える際は十分に注意する必要があります。

例えば、次の図で示されているシナリオを考えます。



compensationデータベースはDBAによって所有されています。

SysAdminDBAのシステム管理者であるユーザーcompensationは、compensationに対する権限(CREATE MACRO WITH GRANT OPTIONを含む)と、compensationによって所有されるすべてのオブジェクトに対して権限を所持しています。

SysAdminDBAは、結果的に次のものを自身に与えることもできます。

  • compensationによって所有されるオブジェクトに対して権限
  • compensationがWITH GRANT OPTIONを持っている権限
  • compensationによって所有される暗黙権限

SysAdminDBAは、州および連邦の規制局によって実行された日常的な監査についての補正報告を作成する作業を担当する基本レベルのプログラマ用に、ユーザーCompAnalyst6を作成します。重要機密である従業員の基本給およびボーナス情報にアクセスできないようにするため、CompAnalyst6には、compensationデータベース内のオブジェクトに対して権限の制限セットだけを与えられます。

CompAnalyst6がレポートを作成しやすくするため、SysAdminDBAは、次のようにcompensationに対するCREATE MACRO権限もCompAnalyst6に与えます。

     GRANT CREATE MACRO
     ON compensation
     TO companalyst6;

compensationでマクロを実行する権限はcompensationから派生するので、CompAnalyst6は、表示を制限される種類の私用データについてのみ報告するマクロを作成して実行できます。

例えば、次のプロシージャで概要を示している3つの手順により、CompAnalyst6は、単純なマクロを介してすべてのテーブルへの完全アクセスを与えてから、データベース オブジェクトを作成したり、企業内の各従業員の給与およびボーナスのデータについて報告する問合わせを実行したりすることができます。

  1. CREATE MACRO everything AS
 (GRANT ALL PRIVILEGES ON compensation
  TO companalyst6;);
  2. EXECUTE everything;
  3. SELECT *
FROM salary, bonus;

CompAnalyst6は、compensationデータベース内のデータを変更し、テーブルを削除することもできます。