CREATE DATABASE ステートメント
CREATE DATABASE ステートメントは、現行サーバーの Db2 データベースを定義します。
呼びかけ CREATE DATABASE
このステートメントは、アプリケーション・プログラムに組み込むか、あるいは対話式に発行することができます。 これは、DYNAMICRULES RUN動作が有効になっている場合にのみ、動的に準備できる実行可能なステートメントです。 詳細は、「Authorization IDs and dynamic SQL」 を参照してください。
承認 CREATE DATABASE
以下に定義する特権セットには、少なくとも次のいずれかが含まれていなければいけません。
- CREATEDBA 特権
- CREATEDBC 特権
- SYSADM または SYSCTRL 権限
- システム DBADM
- インストール SYSOPR 権限 (プロセスの現行 SQLID が SYSINSTL に設定されている場合)
データベースが作業ファイル・データベースとして作成されている場合、以下に定義されている特権セットに SYSADM 権限が含まれている必要があります。
特権セット:
アプリケーション・プログラムにこの ステートメントを組み込む場合、特権セットは、プランまたはパッケージの所有者が持つ特権となります。
ステートメントが動的に準備された場合、権限セットはプロセスのSQL認証IDが保持する権限です 信頼されたコンテキスト内で処理が行われ、ROLE AS OBJECT OWNER句が指定されている場合を除きます。 その場合には、特権セットは、プロセスの 1 次許可 ID と関連するロールが持つ特権のセットとなります。
CREATE DATABASEステートメントが成功した場合の権限付与効果については、CREATE DATABASEの注釈を参照してください。
構文 CREATE DATABASE
説明の対象: CREATE DATABASE
- database-name
- データベースの名前を指定します。 この名前は DSNDB で始めてはなりません。また、現行サーバー に存在するデータベースを指定してはいけません。 database-name は、「DSN」で始まってその後に正確に 5 桁が付く 8 文字の形式にはしないでください。 データ共用環境では、データベースが作業ファイル・データベースとなる場合は、 DSNDB07 が受け入れ可能な作業ファイル・データベース名となります。 ただし、作業ファイル・データベースのメンバーの 1 つだけが DSNDB07 をその 作業ファイル・データベースの名前として使用することができます。
- BUFFERPOOL bp名
- データベース内に作成される表スペースに使用されるデフォルト・バッファー・プール名を
指定します。 データベースが作業ファイル・データベース
である場合は、8KB および 16KB のバッファー・プールは指定できません。 bpname の詳細については、「SQLにおける命名規則」 を参照してください。
BUFFERPOOL 文節を省略した場合、バッファー・プールには TBSBPOOL サブシステム・パラメーター値が使用されます。 テーブル空間が暗黙的に作成された場合、 Db2 は 「暗黙的に定義されたテーブル空間 」で説明されているようにバッファプールを選択します。
- INDEXBP bp名
- データベース内に作成される索引に使用されるデフォルト・バッファー・プール名を
指定します。 この名前には、4KB、8KB、16KB、または 32KB バッファー・プールを指定することができます。 bpname の詳細については、「SQLにおける命名規則」 を参照してください。
INDEXBP 文節を省略した場合、インストール・パネル DSNTIP1 上のユーザー索引として 指定されているバッファー・プールが使用されます。 このパネル上の ユーザー索引フィールドのデフォルト値は BP0 です。
- AS WORKFILE
- データベースが作業ファイル・データベースであることを指定します。 AS WORKFILE は、データ共用環境でのみ指定できます。 Db2 サブシステムごとに作成できるワークファイルデータベースは1つだけです。 この作業ファイル・データベースの使用対象は、作業ファイル、作成済みのグローバル一時表、宣言済み一時表、およびセンシティブ静的両方向スクロール・カーソルです。
PUBLIC は、(GRANT 権限を使用せずに) 暗黙的に CREATETAB 特権を受け取って 、作業ファイル・データベースに宣言済み一時表を定義します。 この暗黙の特権は、 Db2 カタログには記録されておらず、取り消すこともできません。
CCSID 文節は、作業ファイル・データベースではサポートされません。 AS WORKFILE を指定する 場合には、CCSID 文節を使用しないでください。
- FOR 会員名
- このデータベースの作成対象であるメンバーを指定します。 FOR member-name はデータ共用環境でのみ指定してください。
FOR member-name が指定されていない場合、メンバーはCREATE DATABASE文が実行される Db2 サブシステムです。
- STOGROUP グループ名
- データベース内の表スペースおよび索引に必要な DASD スペースをサポートする ためのデフォルトのストレージ・グループとして、必要に応じて、使用されるストレージ・ グループを指定します。 デフォルトは SYSDEFLT です。
- CCSID 符号化方式
- データベースに格納されたデータのデフォルトの
コード化スキームを指定します。 デフォルトは、データベース内に作成された
表スペースに適用されます。 表スペース内に格納されたすべての表は同じ
コード化スキームを使用しなければなりません。
- ASCII
- サーバーの ASCII CCSID を使用して、データをエンコードしなければならないことを指定します。
- EBCDIC
- サーバーの EBCDIC CCSID を使用して、データをエンコードしなければならないことを指定します。
- ユニコード
- サーバーの UNICODE CCSID を使用して、データをエンコードしなければならないことを指定します。
通常は、それぞれのコード化スキームに必要な CCSID はただ 1 つです。 混合データ、グラフィック・データ、または UNICODE データを使用する場合は、追加の CCSID が必要です。
オプションは、インストール・パネル DSNTIPF の フィールド DEF ENCODING SCHEME の値がデフォルトです。
AS WORKFILE 文節を指定する場合には、CCSID 文節を使用しないでください。
注釈 CREATE DATABASE
このステートメントをアプリケーション・プログラムに組み込んだ場合は、 プランまたはパッケージ所有者がデータベースの所有者となります。 このステートメントが動的に準備される場合は、プロセスの SQL 許可 ID が データベースの所有者となります。
データベースの所有者が、CREATEDBA、SYSADM、または SYSCTRL 権限 を持つ場合、その所有者はデータベースに対する DBADM 権限を得ます。 データベースに対す る DBADM 権限には、データベース内のすべての表に対する表特権が含まれます。 したがって、SYSCTRL 権限を持つユーザーがデータベースを作成 した場合、そのユーザーは、そのデータベース内のすべての表に対する表特権を持つことになります。 これは、SYSCTRL 権限に表特権は含まれないという規則の例外です。
データベースの所有者が CREATEDBC 特権は持っているが、CREATEDBA 特権 を持っていない場合、その所有者はデータベースに対する DBCTRL 権限を獲得します。 この場合、そのデータベースに対する DBADM 権限は、SYSADM 権限 を持つ許可 ID によって付与されない限り、許可 ID が DBADM 権限 を持つことはありません。
例 CREATE DATABASE
- 例 1
- データベースを作成する DSN8D13P。 DSN8G130 データベース内のテーブルスペースとインデックスに使用するデフォルトのストレージグループとして指定します。 データベース 内の表スペースに使われるデフォルト・バッファー・プールとして 8KB バッファー・プール BP8K1 を 指定し、データベース内の索引に使われるデフォルト・バッファー・プールとして BP2 を指定します。
CREATE DATABASE DSN8D13P STOGROUP DSN8G130 BUFFERPOOL BP8K1 INDEXBP BP2; - 例 2
- データベース DSN8TEMP を作成します。 デフォルト・ストレージ・グループ 名およびデフォルト・バッファー・プール名にデフォルトを使用します。 データベースに保管された データのデフォルトのコード化スキームとして ASCII を指定します。
CREATE DATABASE DSN8TEMP CCSID ASCII;
