CREATE AUTHORIZATIONおよびREPLACE AUTHORIZATIONの構文要素 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/ncd1596241368722.ditamap
dita:ditavalPath
ja-JP/ncd1596241368722.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage
database_name
user_name
定義または置換される許可が含まれる、現在またはデフォルト以外のデータベースまたはユーザーの名前[オプション]。
authorization_name
許可の名前。外部ルーチン定義または関数マッピングで許可を指定できます。
許可オブジェクトの名前は、オブジェクトの命名ルールに準拠している必要があります。データベース オブジェクト命名の詳細については、<Teradata Vantage™ - SQLの基本、B035-1141>を参照してください。
次のようなルールが、許可名に適用されます。
  • 許可は、その許可が作成されたデータベースまたはユーザーに属し、他のデータベースまたはユーザーでは無効です。 SCRIPTテーブル演算子で許可オブジェクトを使用する詳細については、<Teradata Vantage™ - SQL演算子およびユーザー定義関数、B035-1210>を参照してください。
  • 許可オブジェクト名はこれを含むデータベースまたはユーザー内で固有でなければなりません。
  • 許可オブジェクト名は数字で始めることはできません。
  • 許可オブジェクト名はSQLキーワードであってはなりません。
DEFINER
外部ルーチンとデータベースのユーザーを、その外部ルーチンが含まれているデータベースに関連付けるキーワード。
DEFINERを指定する場合、database_nameまたはuser_nameは外部ルーチンが含まれているデータベースまたは外部ルーチンのユーザーであることが必要です。
DEFINERの指定には、次のルールが適用されます。
  • データベースまたはユーザーは、ただ1つのデフォルトのDEFINER許可オブジェクト名に関連付けることができます。
  • データベースまたはユーザーは、デフォルト以外の多くのDEFINER許可オブジェクト名に関連付けることができます。
DEFAULT
以下の文のEXTERNAL SECURITY DEFINER句で許可名が指定されないすべての外部ルーチンに関し、その外部ルーチンとこの許可とを関連付ける、DEFINERキーワードの任意指定のキーワード修飾子を指定します。
デフォルトのDEFINERオブジェクトは、1つのデータベースにつき1つしか割り当てることができません。それ以外のすべてのDEFINERオブジェクトについては、特定のDEFINER名が必要です。
INVOKER
データベース ユーザーを、外部ルーチンを呼び出すデータベース ユーザーに関連付けるキーワード。
INVOKERを指定する場合、database_nameまたはuser_nameは、そのユーザーまたはプロファイルのログオン データベースまたはユーザーである必要があります。
INVOKER許可名は、データベースまたはユーザーごとに1つしか割り当てられません。
TRUSTED
関連付けられた権限オブジェクトがTRUSTEDとして作成されたことを示すキーワード。
外部テーブルまたは関数マッピングを作成する場合は、EXTERNAL SECURITY句で指定する許可にTRUSTEDセキュリティ タイプを使用する必要があります。CREATE FOREIGN TABLEまたはCREATE FUNCTION MAPPINGとREPLACE FUNCTION MAPPINGを参照してください。
user_name
この許可の割り当てられるデータベース ユーザーの名前である文字列リテラルを指定する句。
Amazon S3、Azure BLOBストレージ、Google Cloud Storageなどの外部オブジェクト ストア内のパブリック バケット(またはパブリック コンテナ)には、アクセスに信頼証明は必要ありません。これらに対する許可を作成するには、一重引用符のペア'' で区切られた空の文字列を使用します。
password
user_nameに割り当てられるオペレーティング システム プラットフォームのパスワードの名前である文字列リテラルを指定する句。
パスワードは、セキュア サーバー プロセスの作成時にユーザー許可に使用されます。この文を使用するあらゆるセッションを、暗号化されたトランスポート プロトコルを使用するように設定することが最善です。<Teradata Vantage™ - Advanced SQL Engineセキュリティ管理ガイド、B035-1100>を参照してください。
Amazon S3、Azure BLOBストレージ、Google Cloud Storageなどの外部オブジェクト ストア内のパブリック バケット(またはパブリック コンテナ)には、アクセスに信頼証明は必要ありません。これらに対する許可を作成するには、一重引用符のペア'' で区切られた空の文字列を使用します。
パスワードを平文で入力するのは決して望ましいことではありませんが、これが問題になるのはBTEQなどのインターフェースを使ってパスワードを入力する場合のみです。パスワードの入力時にパスワードをアスタリスク文字で表示するGUI、WWW(World Wide Web)のインターフェースなど、情報を安全な方法で要求するアプリケーションがパスワードの入力を求める場合は問題になりません。この方法は、セキュリティが重視されるすべてのサイトで推奨されます。