IT業界の人を応援!! 資格取得ガイド
 トップページ > 備忘録 > Oracleを設定してみよう(Oracleユーザ作成方法)









Oracleを設定してみよう(Oracleユーザ作成(Oracleスキーマ)方法)

Oracleユーザの作成コマンドの説明

当ページではOracleユーザ(Oracleスキーマ)の作成方法を説明します。
まず、オラクルユーザの作成方法ですが、GUIベースのOracleEnterpriseManager(OEM)を使用した方法、およびCUIベース(SQLPLUS)を使用したOracleユーザ(スキーマ)作成方法があります。


ここでは、どの現場でも使用可能なCUIベース(コマンド)によるSQLPLUSによる作成
方法を説明致します。
※なぜ、CUIベースによる作成方法がどの現場でも使用可能かと言うと、必ず
SQLPLUSはインストールされますが、GUIベースのOEMは現場によってはインストール
されていない事がある為です。



オラクルユーザ作成方法(スキーマ作成)の構文

SQL> create user ユーザー名
    identified by パスワード
    default tablespace デフォルト表領域
    temporary tablespace デフォルトテンポラリー表領域;


※上記にQUOTA句という設定も出来ますが、作者は今後も使用する用途はほぼないと思いますので割愛します。


例)以下ではオラクルユーザ名がtest,パスワードはtest,デフォルト表領域はUSERS
  デフォルトテンポラリ表領域はTEMPとした場合の例です。

SQL> create user test
    identified by test
    default tablespace USERS
    temporary tablespace TEMP;



オラクルユーザ作成方法(スキーマ作成)の構文の細かい説明
上記の構文で、ユーザ名とパスワードはご想像の通り、オラクルのユーザ名とパスワードになります。


上記のデフォルト表領域とは、作成したユーザがテーブルやインデックスを作成する際に、どこどこの表領域に作成するという文言を入れなかった場合にどこの表領域に作成するかを指定しています。

上記の例ですと、testユーザが何も指定せずテーブルを作ると、デフォルト表領域であるUSERSにテーブルが作成される事になります。


次にデフォルトテンポラリー表領域とはですが、こちらはソートやマージと呼ばれる処理を行う際にどの表領域を使うかを指定しています。

具体的にはGroup by句やOrder by句やDistinct句を実行した時に、メモリ内で処理しきれない時に、ファイルに書き出す場所になります。





実際にOracleユーザを作成してみる
SQLPLUS経由でオラクルに接続する
[oracle@localhost ~]$ sqlplus / as sysdba
SQL>
SQL> show user
ユーザーは"SYS"です。
SQL>

作成予定のTESTユーザが存在しない事を確認。
SQL> select * from dba_users where USERNAME='TEST';

レコードが選択されませんでした。

SQL>

TESTユーザを作成。
SQL> create user test
2 identified by test
3 default tablespace USERS
4 temporary tablespace TEMP;

ユーザーが作成されました。

SQL>

TESTユーザを作成状況の確認。
以下のcol****はselect分の表示をきれいに出す為にやってます。

SQL> col USERNAME for a10
SQL> col ACCOUNT_STATUS for a20
SQL> col DEFAULT_TABLESPACE for a20
SQL> col TEMPORARY_TABLESPACE for a20
SQL>
SQL> select USERNAME,ACCOUNT_STATUS,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users where USERNAME='TEST';

USERNAME ACCOUNT_STATUS DEFAULT_TABLESPACE TEMPORARY_TABLESPACE
--------- ---------------- ------------------ ----------------------
TEST     OPEN          USERS            TEMP

SQL>

早速、TESTユーザで接続してみるが。。
SQL> connect TEST/TEST
ERROR:
ORA-01045: ユーザーTESTにはCREATE SESSION権限がありません。ログオンが拒否されました。


警告: Oracleにはもう接続されていません。
SQL>

上記ように、ユーザ作成をしただけではOracleに接続出来ません。
エラー内容を見れば記載されていますが、権限がない為、エラーとなります。
以下で接続の為のロール(CONNECT)と開発者用のロール(RESOURCE)をTESTユーザに付与します。

SQL> show user
ユーザーは"SYS"です。
SQL>
SQL> col GRANTEE for a30
SQL> col GRANTED_ROLE for a30
SQL> select GRANTEE,GRANTED_ROLE from dba_role_privs where GRANTEE='TEST';

レコードが選択されませんでした。 <=TESTユーザに何も権限が付与されていない。

SQL>
SQL> grant CONNECT,RESOURCE to TEST;

権限付与が成功しました。

SQL> select GRANTEE,GRANTED_ROLE from dba_role_privs where GRANTEE='TEST';

GRANTEE                   GRANTED_ROLE
------------------------------ ------------------------------
TEST                      RESOURCE
TEST                      CONNECT

SQL>
SQL>
SQL> connect TEST/TEST
接続されました。          <=CONNECTロールを付与したので接続できた!!
SQL>
SQL> show user
ユーザーは"TEST"です。
SQL>





作者が読んでよかったので推薦するオラクル関連の本nze DBA10g
絵で見てわかるOracleの仕組み
絵で見て、Oracleの動作を理解出来る本です。

Oracleの動作を文字やコマンドで解説されている本はたくさんありますが、どうも解りにくい。。

この本は、その”解りにくい・・”の箇所を極力、絵で表してくれているお勧めの本です。
Oracleのアーキテクチャ(仕組み)をイメージしやすいように書かれています。

作者もこの本で”もやもや”しているオラクルの動作を整理出来ました!!

目的地を人に聞く時、「次の次の信号を右に曲がって、次を左に曲がって、3件目です」より、「今ここで、ここが目的地」と地図で教えてもらった方が解りやすいし、道を間違っても、自分の力で辿りつけますよねぇ。

要は、絵で理解すると解り易いし、道(手順)を外れても回復する応用力が付くと言う事です。
現場で使えるSQL

この本を理解出来れば、現場のDBがOracleであろうがSQLServerであろうがどんなDBにも対応出来ます。

また、この本は現場でよく使用するSQL文を、例題、正解、解説の形で紹介されています。
例題数は100個と多いですが、この100個を覚えると現場がオラクルであろうが、SQLServerであろうがどのなDBを使用している現場にも対応出来ます。

100個の例題の中にはよく使用するSQLから作業効率を高めるSQL、よくやるミスの回避方法が掲載されています。

知っていました? 普及しているデータベースのSQLは国際標準のANSIという規格に準拠している事を。
要は、OracleでSQLを書ける人は他のデータベースでも同じように書けます。

例えるなら、関西弁をしゃべれる人は標準語を理解出来るし、博多弁、広島弁と違う場所(異なるDBのSQL)も理解出来ますし、使えます。ANSIとは日本語の基本を決めるルールです。多少は場所によるローカルルールはありますが、基本ルールに基づいています。






Copyright(C) IT業界の人を応援!!資格取得ガイド All Rights Reserved