データベース階層内でオブジェクトの作成とオブジェクトの所有の間には相違があります。所有者の権限と作成者の権限は異なり、作成中に未定義のパラメータに対するデフォルト設定を決定します。
- オブジェクトの「作成者」は、CREATE文を実行依頼したユーザーです。オブジェクトの作成者は1人だけです。CREATE文がマクロの中で実行される場合は、そのマクロを実行したユーザーがオブジェクトの作成者になります。マクロは、オブジェクトを作成するための単なる媒体です。
- オブジェクトの所有者は、データベース階層内のそのオブジェクトよりも上位のデータベースかユーザーになります。
- 新規のユーザーまたはデータベースの直接所有者(または親)は、そのオブジェクトが存在する領域の所有者です。(言い換えれば、自分の固定領域から新しいオブジェクトの作成用領域を差し引いて割り当てたデータベースやユーザーが、その新規オブジェクトの直接の所有者になります)。作成者はCREATE文を実行依頼したユーザーですが、そのユーザーはCREATE USERまたはCREATE DATABASE文のFROMデータベース オプションを使用することにより、別のデータベースを指定することが可能です。
デフォルト データベースは、作成するユーザーのデータベースですが、ユーザーはCREATE文の中でdatabasename.objectnameのように、オブジェクト名の前にデータベース名を指定してピリオドで区切ることにより、別のデータベースを指定できます。
オブジェクトは必ず直接所有者を持ちます。したがって、1つ以上のオブジェクトを直接所有する所有者は削除できません。ただし、データベースまたはユーザーの直接所有者を変更することはできます。
以下のテーブルに、作成者、所有者、直接所有者を定義する基本ルールをリストします。
アクション | 結果 |
---|---|
オブジェクトを作成するCREATE文を(データベース内のどこかで)実行する。 | そのユーザーがオブジェクトの作成者になる。そのユーザーがオブジェクトの所有者または直接所有者になるとは限らない。 |
階層内でユーザーの直下にあるオブジェクトを表示する。 | そのユーザーがオブジェクトの直接所有者になる。 |
自身のデータベースにオブジェクトを作成する。 | ユーザーはオブジェクトの作成者と直接所有者になる。 |
他のユーザーまたはデータベースの領域にオブジェクトを作成する(それを行なえる権限を持っているものとする)。 |
|
|
|
ディレクトリ サーバー統合の環境で、ディレクトリベースのユーザーCがTeradataデータベースのユーザーAにマッピングされている。この状態で、ユーザーCがユーザーDにデータベースを作成したとする。 | ユーザーAが作成者として記録され、ユーザーDが新規データベースの直接所有者として記録される。 |