管理の手引き


スキーマの作成

データを表に編成すれば、表 (他の関連オブジェクトも) を一緒にグループ化する利点もあります。 これは、CREATE SCHEMA ステートメントを使用して、 スキーマを定義することによって行うことができます。 スキーマについての情報は、接続するデータベースのシステム・カタログ表に保持されます。 他のオブジェクトが作成されると、それらのオブジェクトをこのスキーマ内に置くことができます。

CREATE SCHEMA ステートメントの構文についての詳細は、 SQL 解説書 に説明があります。 新しいスキーマ名は、すでにシステム・カタログに存在する名前にすることはできず、 "SYS" で始めることはできません。

ユーザーが SYSADM 権限または DBADM 権限を持っている場合、そのユーザーは、 任意の有効な名前でスキーマを作成することができます。 データベースが作成されるときに、IMPLICIT_SCHEMA 権限が PUBLIC (つまり、 すべてのユーザー) に付与されます。

CREATE SCHEMA ステートメントの一部として作成されたどのオブジェクトの定義者も、 スキーマの所有者になります。 この所有者は、他のユーザーに対して、 スキーマ特権の GRANT および REVOKE を行うことができます。

このステートメントは、DBADM 権限を持つユーザーが出されなければなりません。

スキーマは、ユーザーが IMPLICIT_SCHEMA 権限を持ったときに、 暗黙に作成されることもあります。 この権限を使用して、ユーザーは、 すでに存在していないスキーマ名を持つオブジェクトを作成するときに、 常に暗黙にスキーマを作成します。

ユーザーが IMPLICIT_SCHEMA 権限を持っていない場合、 ユーザー自身の許可 ID と同じ名前のスキーマだけを作成することができます。

コントロール・センターを使用してスキーマを作成するには、以下のようにします。
  1. オブジェクト・ツリーを順に展開し、 「スキーマ (Schema)」フォルダーを表示します。
  2. 「スキーマ (Schema)」フォルダーを右クリックして、 ポップアップ・メニューから「作成 (Create)」を選択します。
  3. 新しいスキーマに関する情報をすべて入力し、 「Ok」をクリックします。

コマンド行を使用してスキーマを作成するには、以下のように入力します。

   CREATE SCHEMA <name> AUTHORIZATION <name>

以下は、許可 ID "joe" を持つ個人ユーザーについてのスキーマを作成する、 CREATE SCHEMA ステートメントの例です。

   CREATE SCHEMA joeschma AUTHORIZATION joe

スキーマの設定

特定の DB2 接続内から発行された動的 SQL ステートメント中の修飾されていないオブジェクト参照が使用できるよう、 省略時のスキーマを設定するとします。 これは、デフォルトとして使用したいスキーマに、 特殊レジスター CURRENT SCHEMA を設定することによって行えます。 この特殊レジスターは、どのユーザーでも設定することができます。 設定するための許可は必要ありません。

SET SCHEMA ステートメントの構文についての詳細は、 SQL 解説書 に説明があります。

以下に CURRENT SCHEMA 特殊レジスターの設定方法の例を示します。

   SET CURRENT SCHEMA = 'SCHEMA01'

このステートメントは、アプリケーション・プログラム内から使用するか、 あるいは対話式に発行することができます。 一度設定されると、CURRENT SCHEMA 特殊レジスターの値は、 データベース・オブジェクトへの修飾されていない参照が存在する CREATE SCHEMA ステートメント以外の動的 SQL ステートメント用の修飾子 (スキーマ) として使用されます。

CURRENT SCHEMA 特殊レジスターの初期値は、 現行セッション・ユーザーの許可 ID と同じになります。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]