CREATE PROCEDUREおよびREPLACE PROCEDURE(SQL形式) - Teradata Database - Teradata Vantage NewSQL Engine - CREATE PROCEDUREおよびREPLACE PROCEDURE(SQL形式)SQL文

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/wkf1512081455740.ditamap
dita:ditavalPath
ja-JP/wkf1512081455740.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

目的

SQLプロシージャ コンパイラに、残りのソース テキストのSQL文からプロシージャを作成または置換するよう命令し、プロシージャの呼び出しに使用されるSQL定義を作成します。

REPLACE PROCEDUREは、既存のSQLプロシージャの定義を置き換えるようSQLプロシージャ コンパイラに命令します。

指定されたSQLプロシージャが存在しない場合、REPLACE PROCEDUREは残りのソース テキストのSQL文から、その名前を持つ新しいプロシージャを作成します。

CREATE PROCEDUREに必要な権限

プロシージャが含まれるデータベースまたはユーザーに対するCREATE PROCEDURE権限が必要です。SQLプロシージャの作成者には、WITH GRANT OPTION付きのDROP PROCEDUREおよびEXECUTE権限が自動的に与えられます。

Teradata Databaseは、プロシージャのSQL SECURITY句オプションの定義に応じて、異なる方法でSQLプロシージャ権限をチェックします。

SQLデフォルト以外のデータベースまたはユーザーに対してストアド プロシージャを作成することを許可するCREATE OWNER PROCEDURE権限が明示的に付与されていない限り、SQL SECURITY句にはOWNERオプションを指定できないことに注意してください。これはセキュリティ管理者が守らなくてはならない非常に重要な権限です。どうしてもこの権限が必要なユーザーにのみ付与する必要があります。

パラメータ型がUDTか、またはUDT構成要素の型を含むArray/Varrayの場合、以下の権限の少なくとも1つが必要です。
  • 指定されたUDTに対するUDTUSAGE権限。
  • SYSUDTLIBデータベースに対するUDTUSAGE権限。
  • SYSUDTLIBデータベースに対するUDTTYPE権限。

詳細については、SQLプロシージャ権限のルールを参照してください。

REPLACE PROCEDUREに必要な権限

プロシージャを置換するには、そのプロシージャ、またはそれを含むデータベースかユーザーに対するDROP PROCEDURE権限が必要です。

プロシージャが存在していない場合、そのプロシージャ、またはそれを含むデータベースかユーザーに対するCREATE PROCEDURE権限が必要です。

プロシージャを置換するユーザーには、アクセスするすべてのオブジェクトに対する権限が必要です。

プロシージャが置換された後は、その直接の所有者は置換したユーザーではなく、それを含むデータベースまたはユーザーになります。それを直接所有するデータベースには、WITH GRANT OPTIONを含めプロシージャを実行するための適切な権限がすべて必要です。

自動的に与えられる権限

新しいプロシージャを作成した場合、Teradata Databaseは自動的に以下の権限を与えます。

  • DROP PROCEDURE
  • EXECUTE PROCEDURE

構文