17.10 - ユーザーとデータベースの違い - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1184-171K-JPN
Language
日本語 (日本)

一般には、データベース ユーザーとデータベースの違いは、ユーザーにはパスワードがあるが、データベースにはないことだけです。かつてはそうでしたが、今は当てはまりません。データベースにパスワードを割り当てられない点はそのままですが、ユーザーにはデータベースより多くの属性があります。

ユーザーとデータベース定義では、次の属性セットが共通しています。
  • 固定領域の指定
  • 一時領域の指定
  • スプール領域の指定
  • 1つ以上のアカウント文字列
  • BEFOREジャーナルの指定
  • AFTERジャーナルの指定
  • デフォルトジャーナル テーブルの指定
  • ユーザー用の固定領域内に作成した全てのテーブルに対するフォールバックの指定

たとえ最小ケースであっても、ユーザーが常にデータベース定義の上位集合であれば、データベースの定義は常にユーザーの定義の適切な部分集合になります。

ユーザーはデータベースのすべての属性を持ち、さらに、次のリストに挙げられているような追加の属性を数多く持つように定義することもできます。このリストにある属性は、データベースに対しては指定できません。
  • パスワード
  • 始動文字列
  • デフォルトのロール
  • デフォルトのタイムゾーン
  • デフォルトの日付形式
  • デフォルトのデータベース
  • デフォルトの文字セット
  • デフォルトの照合順序
  • GRANTリクエストを使って割り当てたデフォルトのユーザー プロファイル
  • リモートのユーザー管理ソフトウェアを通してDBMSに対して部分的に外部となり得るユーザー定義。

ユーザーを定義するときには、一般的な意味でのユーザーを定義することになりますが、新しく定義したユーザーと同じ名前を持つデータベースも定義することになります。こうした一見異なるエンティティも、実際には1つのデータベース オブジェクトになる点に注意してください。ユーザーとデータベースの違いは、ユーザーのデータベース コンポーネントは0バイトのPERM領域値で定義できる、という点です。この違いは重要ですが、多くの場合、見落とされがちです。このようにして定義されたユーザーは、基本的にはだけユーザーであり、実際にはデータベースの属性と重複しません

デフォルトでは、このような純粋なユーザーは階層内の末端ノードになりますが、これは子のユーザーやデータベースに渡す固定領域がないためです。

固定領域を持たないユーザーを定義する場合も、やはりユーザー用のSPOOL領域(ユーザーが実体化されたグローバル一時テーブルで作業する場合には、おそらくTEMPORARY領域)の最小値をいくつか定義する必要があります。これらは所有者データベースまたはユーザーから継承するか、明示的に指定できます。