REVOKE (SQL形式) - 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

データベース、ユーザー、テーブル、ビュー、プロシージャ、UDF、関数マッピング、またはマクロに対する1つまたは複数の明示的権限を、ロール、ロールのグループ、ユーザー、またはユーザーのグループから取り消すか、GRANTオプションを明示的権限から削除します。

REVOKEは、取り消されたユーザーが次のリクエストを発行するとすぐに有効になります。

NONTEMPORAL権限の取り消しについては、<Teradata Vantage™ - テンポラル テーブル サポート、B035-1182>を参照してください。

必要な権限

権限を取り消すには、まずその権限を付与出来る権限を持っていなければなりません。データベース オブジェクトを所有しているか、だれかからまずWITH GRANT OPTIONを使用して、直接的にまたはロールによって、権限を自動的または明示的に付与してもらうかのいずれかでなければなりません。

オブジェクトがビューまたはマクロの場合、実行するユーザーも、ビューまたはマクロによって参照されるオブジェクトに対する適切な権限をWITH GRANT OPTIONとともに持っていなければなりません。

構文

REVOKE [ GRANT OPTION FOR ] {
  { ALL [ PRIVILEGES ] | [ ALL BUT ] privilege [,...] } ON object |
    map_privilege [,...] |
    role_privilege [,...] |
    profile_privilege [,...] |
    zone_privilege [,...]
  }
  { TO | FROM }
  { user_revokee [,...] | PUBLIC | role_revokee [,...] } [;]
object
{ { database_name | user_name | role_name | PUBLIC } |

  { database_name. | user_name. } object_name |

  object_name |

  PROCEDURE [ database_name. | user_name. ] procedure_name |

  SPECIFIC FUNCTION [ database_name. | user_name. ] specific_function_name |

  FUNCTION [ database_name. | user_name. ] function_name
    ( [ function_parameter [,...] ] ) |

  TYPE [SYSUDTLIB.] UDT_name
}
user_revokee
[ALL] user_name
role_revokee
[ database_name. | user_name. ] role_name
function_parameter
[ parameter_name ] data_type
data_type
{ INTEGER | SMALLINT | BIGINT | BYTEINT | DATE |

  { TIME | TIMESTAMP } [ (fractional_seconds_precision) ] [WITH TIME ZONE] |

  INTERVAL YEAR [(precision)] [TO MONTH] |

  INTERVAL MONTH [(precision)] |

  INTERVAL DAY [(precision)]
    [TO { HOUR | MINUTE | SECOND [(fractional_seconds_precision)] }] |

  INTERVAL HOUR [(precision)]
    [TO { MINUTE | SECOND [(fractional_seconds_precision)] }] |

  INTERVAL MINUTE [(precision)] [TO SECOND [(fractional_seconds_precision)]] |

  INTERVAL SECOND [ (precision [, fractional_seconds_precision ] ) |

  PERIOD (DATE) |

  PERIOD ( { TIME | TIMESTAMP } [(precision)] [WITH TIME ZONE] ) |

  REAL |

  DOUBLE PRECISION |

  FLOAT [ (integer) ] |

  NUMBER [ ( { integer | * } [, integer]... ) ] |

  { DECIMAL | NUMERIC } [ ( integer [, integer]... ) ] |

  { CHAR | BYTE | GRAPHIC } [ (integer) ] |

  { VARCHAR | CHAR VARYING | VARBYTE | VARGRAPHIC } [ (integer) ] |

  LONG VARCHAR |

  LONG VARGRAPHIC |

  { BINARY LARGE OBJECT | BLOB | CHARACTER LARGE OBJECT | CLOB }
    ( integer [ G | K | M ] ) |

  [SYSUDTLIB.] { XML | XMLTYPE } [ ( integer [ G | K | M ] ) ]
    [ INLINE LENGTH integer ] |

  [SYSUDTLIB.] JSON [ ( integer [ K | M ] ) ] [ INLINE LENGTH integer ]
    [ CHARACTER SET { UNICODE | LATIN } | STORAGE FORMAT { BSON | UBJSON } ] |

  [SYSUDTLIB.] ST_GEOMETRY [ (integer [ K | M ]) ] [ INLINE LENGTH integer ] |

  [SYSUDTLIB.] DATASET [ (integer [ K | M ]) ]
    [ INLINE LENGTH integer ] [storage_format] |

  [SYSUDTLIB.] { UDT_name | MBR | ARRAY_name | VARRAY_name }
}

構文要素

GRANT OPTION FOR
指定されたデータベース オブジェクトに対応する明示権限を所持する、指定された受領者の指定された権限セットから、WITH GRANT OPTION付与権限のみを削除します。
REVOKE GRANT OPTION FORは、指定された権限セットを他のユーザーに付与する能力を取り消しますが、指定されたユーザーまたはロールから明示権限自体を取り消すことはありません。
このオプションは、ロールの受領者には適用されません。
ALL
PRIVILEGES
REVOKE文を実行するユーザーによって、指定されたオブジェクトに対してWITH GRANT OPTION付きで付与でき、暗黙的または明示的に保持されている、MONITOR以外の明示的に与えられたすべてのデータベース権限(テーブル権限を除く)が、指定されたユーザーまたはロールから取り消されます。
PRIVILEGESは任意です。
REVOKE ALLはINDEXおよびREFERENCES権限を取り消しません。これらの権限を取り消すには、明示的に取り消す必要があります。
MONITORも含めたすべての明示データベース権限を取り消すために、取り消すユーザーは次の2つの文を実行する必要があります。
REVOKE ALL PRIVILEGES ON  object 
FROM  user_name;

REVOKE MONITOR PRIVILEGES
FROM  user_name;
ALL PRIVILEGESには、すべての明示的なデータベース権限が含まれています。
ALL PRIVILEGESを指定した場合は、付与権限とともに保持されている明示権限だけが、受領者から取り消されます。
ANSI/ISO SQLでは、キーワードPRIVILEGESの前にALLが必要です。
ALL BUT
REVOKE文を実行するユーザーによって、指定されたオブジェクトに対してWITH GRANT OPTION付きで付与でき、暗黙的または明示的に保持されている、権限のセットで指定された権限以外のすべての明示的なデータベース権限が、指定されたデータベース オブジェクトから取り消されます。
privilege
権限ディクショナリにリストされた1つ以上の権限。

INSERT、REFERENCES、SELECT、およびUPDATEには、別々に、表および列レベルのオプションがあります。GRANT (SQL形式)を参照してください。

GENERATED ALWAYSの識別列に対するUPDATE権限は付与できません。
ANSI/ISO SQL:2011規格では、データベースまたはユーザーに対するREVOKE、またはALL BUTをサポートしません。これらはANSI/ISO SQL:2011規格に対するTeradataの拡張機能です。
権限はどのような組合せでも指定することができます。ただし、リクエストを実行するユーザー自身は、WITH GRANT OPTION付きで指定された、すべての権限を暗黙的または明示的に所持していなければなりません。
DATABASE、FUNCTION、MACRO、PROCEDURE、PROFILE、ROLE、TABLE、TRIGGER、USER、VIEW、またはZONEをCREATEまたはDROPなしで指定する場合は、CREATEとDROPの両方が取り消されます。
CHECKPOINTを指定した場合、権限は、SQL文およびHUTコマンドのDUMPとRESTOREの両方から取り消されます。
DUMPまたはRESTOREを個別に指定した場合、システムは対応するHUTコマンドを実行する権限だけを取り消します。
RESTOREを指定した場合、システムはHUTコマンドのROLLBACK、ROLLFORWARD、およびDELETE JOURNALを実行する権限も取り消します。
取り消すことができるのは、トリガーに対する権限ではなく、トリガーを含むデータベースまたはトリガーの対象となるテーブルに対する権限です。
map_privilege
ユーザーおよびロールからCREATE MAPおよびDROP MAP権限を取り消します。
次の権限を指定できます。
  • CREATE MAP
  • DROP MAP
  • MAP
MAPは短縮表現で、単独の権限ではありません。CREATE MAPおよびDROP MAPの両方の権限を取り消すには、MAPを指定します。
role_privilege
以下の権限のうちの1つです。
  • CREATE ROLE
  • DROP ROLE
  • ROLE

    ROLEは、CREATE ROLEとDROP ROLEの両方を表わす短縮表現であり、単独の権限ではありません。

ロール権限は、ユーザーのセットまたはロールからだけ取り消すことができます。オブジェクトから取り消すことはできません。
profile_privilege
以下の権限のうちの1つです。
  • CREATE PROFILE
  • DROP PROFILE
  • PROFILE

    PROFILEは、CREATE PROFILEとDROP PROFILEの両方を表わす短縮表現であり、単独の権限ではありません。

プロファイル権限は、ユーザーのセットまたはロールからだけ取り消すことができます。オブジェクトから取り消すことはできません。
zone_privilege
以下の権限のうちの1つです。
  • CREATE ZONE
  • DROP ZONE
  • ZONE

    ZONEは、CREATE ZONEとDROP ZONEの両方を表わす短縮表現であり、単独の権限ではありません。

ゾーン権限は、ユーザーのセットまたはゾーンからのみ取り消すことができます。オブジェクトから取り消すことはできません。
Teradataセキュア ゾーンの実装の詳細については、<Teradata Vantage™ - Advanced SQL Engineセキュリティ管理ガイド、B035-1100>を参照してください。
database_name
user_name
role_name
PUBLIC
明示的に与えられた権限が取り消されるデータベース名、ユーザー名、またはロール名。このデータベースまたはユーザーの領域に格納されているすべてのオブジェクトが対象になります。
database_name.object_name
user_name.object_name
直接所有しているデータベースの名前と、任意指定でオブジェクト名、またはユーザー名と、明示的に付与されている権限が取り消されるオブジェクト(テーブル、ビュー、プロシージャ、結合インデックス、またはマクロ)の名前。
権限セットを取り消す場合は、データベースまたはユーザー領域内のすべてのオブジェクトではなく、指定されたオブジェクトだけが影響を受けます。
object_name
明示的に与えられた権限が取り消されるテーブル、ビュー、結合インデックス、プロシージャ、関数、関数マッピング、マクロ、または許可の名前。
システムはオブジェクト名を検証する前にデータベース名を検証するので、権限を取り消す際には常にオブジェクト名を修飾する必要があります。
  • オブジェクト名が修飾されておらず、同じ名前を持つデータベースがシステムにより見つかった場合、Teradata Databaseはそれがデータベース名であるとみなします。
  • オブジェクト名が修飾されておらず、同じ名前を持つデータベースが見つからなかった場合、Teradata Databaseはそれが現在のデフォルト データベース内のオブジェクトであるとみなします。
  • 指定された名前を持つデータベースとオブジェクトのいずれも見つからなかった場合、Teradata Databaseはリクエスト側にエラーを返します。
PROCEDURE
database_name
user_name
procedure_name
権限が取り消されるプロシージャの名前。
database_nameuser_nameは任意です。必要に応じて、プロシージャ名は格納しているデータベース、またはユーザーで修飾できます。
SPECIFIC FUNCTION
database_name
user_name
specific_function_name
権限が取り消されるUDFの特定名。
database_nameuser_nameは任意です。必要に応じて、特定の関数名を格納しているデータベース、またはユーザーで修飾できます。
FUNCTION
database_name
user_name
function_name
権限が取り消されるUDFの名前。
database_nameuser_nameは任意です。必要に応じて、特定の関数名を格納しているデータベース、またはユーザーで修飾できます。
parameter_name
data_type
UDFに渡す変数についての、括弧に入れたカンマ区切りのデータ型と任意選択のパラメータ名のリスト。これは、重複決定関数名を固有に識別するために使用します。
BLOB型とCLOB型は、ロケーターで表わす必要があります。ロケーターの説明は、<Teradata Vantage™ - SQLデータ操作言語、B035-1146>を参照してください。Teradata Databaseではメモリ内LOBパラメータはサポートされません。LOBパラメータと戻り値ごとに、AS LOCATOR句を指定する必要があります。
関数に渡すパラメータがない場合でも、開き括弧と閉じ括弧を指定する必要があります。
各パラメータに関連したデータ型は、パラメータまたは戻り値の型です。Teradata Databaseのすべてのデータ型が有効です。文字データについては、CHARACTER SET句も指定して、パラメータに使用するサーバー文字セットを指定できます。
TYPE
SYSUDTLIB.
UDT_name
権限セットを取り消すUDTの名前。
SYSUDTLIB.は任意です。
さまざまなTYPE権限を以下の方法で取り消すことができます。
  • UDTMETHODはSYSUDTLIBデータベースからのみ取り消すことができます。
  • UDTTYPEはSYSUDTLIBデータベースからのみ取り消すことができます。
  • UDTUSAGEは、SUSUDTLIBデータベースまたはTYPE、あるいはその両方から取り消すことができます。
TO
FROM
REVOKEステートメント アクションを受け取る実体。これには、ユーザーのセット、すべてのユーザー、1つのロール、またはPUBLICを指定できます。
REVOKEリクエストにつき最大25個の名前を指定できます。
互換性のために、ANSI/ISO SQLではTOではなくFROMを指定する必要があります。
ALL user_name
明示権限が取り消されるユーザー。最大25個のユーザー名を指定することができます。
ALL user_nameは、指定されたユーザーと、そのユーザーが現在および将来に所有するユーザーに対して権限が付与される、または取り消されることを指定します。
ALL user_nameを指定しないと、取消しは階層構造全体をカスケードしません。
ALL user_nameは、ANSI/ISO SQLに対するTeradataの拡張機能です。
PUBLIC
明示権限が、Teradata Databaseの現在および将来に定義されるすべてのユーザーから取り消されます。
ALL DBCは、PUBLICと等価です。
database_name
user_name
role_nameが含まれているデータベースまたはユーザーを指定します(現在のデータベースまたはユーザー以外の場合)。
role_name
権限が取り消されるロールの名前。
最大25個のロール名を指定することができます。