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 DATABASEdatabase-name1BUFFERPOOLbpnameINDEXBPbpnameAS WORKFILEFORmember-nameSTOGROUPSYSDEFLTstogroup-nameCCSIDASCIIEBCDICUNICODE
注:
  • 1 同一の条項は、複数回指定してはならない。

説明の対象: 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
データベースを作成する DSN8D13PDSN8G130 データベース内のテーブルスペースとインデックスに使用するデフォルトのストレージグループとして指定します。 データベース 内の表スペースに使われるデフォルト・バッファー・プールとして 8KB バッファー・プール BP8K1 を 指定し、データベース内の索引に使われるデフォルト・バッファー・プールとして BP2 を指定します。
   CREATE DATABASE DSN8D13P
     STOGROUP DSN8G130
     BUFFERPOOL BP8K1
     INDEXBP BP2;
例 2
データベース DSN8TEMP を作成します。 デフォルト・ストレージ・グループ 名およびデフォルト・バッファー・プール名にデフォルトを使用します。 データベースに保管された データのデフォルトのコード化スキームとして ASCII を指定します。
   CREATE DATABASE DSN8TEMP
     CCSID ASCII;