目的
データベース、ユーザー、テーブル、ビュー、プロシージャ、UDF、関数マッピング、またはマクロに対する1つまたは複数の明示的権限を、ロール、ロールのグループ、ユーザー、またはユーザーのグループから取り消すか、GRANTオプションを明示的権限から削除します。
REVOKEは、取り消されたユーザーが次のリクエストを発行するとすぐに有効になります。
NONTEMPORAL権限の取り消しについては、<Teradata Vantage™ テンポラル テーブル サポート、B035-1182>を参照してください。
必要な権限
権限を取り消すには、まずその権限を付与出来る権限を持っていなければなりません。データベース オブジェクトを所有しているか、だれかからまずWITH GRANT OPTIONを使用して、直接的にまたはロールによって、権限を自動的または明示的に付与してもらうかのいずれかでなければなりません。
オブジェクトがビューまたはマクロの場合、実行するユーザーも、ビューまたはマクロによって参照されるオブジェクトに対する適切な権限をWITH GRANT OPTIONとともに持っていなければなりません。
構文要素
- 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権限を取り消します。
- 次の権限を指定できます。
- MAPは短縮表現で、単独の権限ではありません。CREATE MAPおよびDROP MAPの両方の権限を取り消すには、MAPを指定します。
- role_privilege
- 以下の権限のうちの1つです。
- ロール権限は、ユーザーのセットまたはロールからだけ取り消すことができます。オブジェクトから取り消すことはできません。
- profile_privilege
- 以下の権限のうちの1つです。
- プロファイル権限は、ユーザーのセットまたはロールからだけ取り消すことができます。オブジェクトから取り消すことはできません。
- zone_privilege
- 以下の権限のうちの1つです。
- ゾーン権限は、ユーザーのセットまたはゾーンからのみ取り消すことができます。オブジェクトから取り消すことはできません。
- Teradataセキュア ゾーンの実装の詳細については、<Teradata Vantage™ NewSQL 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_nameとuser_nameは任意です。必要に応じて、プロシージャ名は格納しているデータベース、またはユーザーで修飾できます。
- SPECIFIC FUNCTION
- database_name
- user_name
- specific_function_name
- 権限が取り消されるUDFの特定名。
- database_nameとuser_nameは任意です。必要に応じて、特定の関数名を格納しているデータベース、またはユーザーで修飾できます。
- FUNCTION
- database_name
- user_name
- function_name
- 権限が取り消されるUDFの名前。
- database_nameとuser_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個のロール名を指定することができます。