somemo's diary

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【Oracle】データベースの作成

データベースの作成方法のメモです。サイズなどの値については全然知識がないので、あとあと覚えておきたいところです。

永続表領域の作成

指定する項目は以下のとおりです。今回はデータ用とインデックス用に分けています。

データファイルのパス
拡張子はdbfが一般的だが、他でも可能らしい。
size
単位をつけてバイト数を記述する。
MAXSIZE
最大サイズを指定する。今回は、無限に拡張可能にしているが、本来は決めるべきだと思う。
AUTOEXTEND
領域の自動拡張の判断。今回は自動で拡張している(デフォルトは拡張しない)。
NEXT
おそらく、自動拡張時のサイズだと思う。
CREATE TABLESPACE データ用 DATAFILE 
'/oradataまでのパス/oradata/任意の名前.dbf' SIZE 800M
  AUTOEXTEND ON
  NEXT 100M
  MAXSIZE UNLIMITED,
'/oradataまでのパス/oradata/任意の名前2.dbf' SIZE 800M
  AUTOEXTEND ON
  NEXT 100M
  MAXSIZE UNLIMITED
/
CREATE TABLESPACE インデックス用 DATAFILE 
'/oradataまでのパス/oradata/任意の名前.dbf' SIZE 100M
  AUTOEXTEND ON
  NEXT 100M
  MAXSIZE UNLIMITED,
'/oradataまでのパス/oradata/任意の名前.dbf' SIZE 100M
  AUTOEXTEND ON
  NEXT 100M
  MAXSIZE UNLIMITED
/

ユーザの作成

指定する項目は以下のとおりです。今回はシステム用とアプリ用に分けています。これの完了後、テーブルの作成とアプリの作成をすればOracleが使えるようになります。

ユーザ作成構文

IDENTIFIED BY
パスワード
DEFAULT TABLESPACE
オブジェクト作成時の格納先
TEMPORARY TABLESPACE
一時表領域の指定。ソートするときに必要な領域を確保できない場合に使用する場所。

システム権限

CONNECT
接続できるようにしている
UNLIMITED TABLESPACE
使用できる表領域の制限なし
RESOURCE
よくわからない・・・
EXP_FULL_DATABASE
エクスポートをする権限
IMP_FULL_DATABASE
インポートをする権限
ALTER ANY SEQUENCE
シーケンスの変更権限。システム権限?
CREATE USER システムユーザ
  IDENTIFIED BY システムユーザ
  DEFAULT TABLESPACE 表領域名
  TEMPORARY TABLESPACE TEMP
/
GRANT CONNECT TO システムユーザ
/
GRANT UNLIMITED TABLESPACE TO システムユーザ
/
GRANT RESOURCE TO システムユーザ
/
GRANT EXP_FULL_DATABASE TO システムユーザ
/
GRANT IMP_FULL_DATABASE TO システムユーザ
/
CREATE USER アプリユーザ
  IDENTIFIED BY アプリユーザ
  DEFAULT TABLESPACE 表領域名
  TEMPORARY TABLESPACE TEMP
/
GRANT CONNECT TO アプリユーザ
/
GRANT ALTER ANY SEQUENCE TO アプリ用ユーザ
/