第2章 ユーザ作成と管理(補足)

1. ユーザ管理

■データベースを使用するユーザを定義し、管理する。

■各ユーザごとに管理する項目

1.ユーザ名
ユーザ作成時に指定する。作成後に変更することはできない。
2.パスワード
ユーザ作成時又は作成後に指定する。ユーザは自分のパスワードを変更できるが、他のユーザのパスワードを変更するにはALTER USER権限が必要。
3.表領域制限
ユーザが使える表領域および表領域内で使える容量を指定する。ユーザ作成時又は作成後に指定する。ユーザは自分が使える表領域を変更することはできない。変更にはALTER USER権限が必要。
4.権限付与
権限付与はユーザ作成後に行う。ユーザがどのオブジェクトを使えるようにするか(オブジェクト権限)、またはどんな作業ができるようにするか(システム権限)を指定する。

上記の1〜3はCREATE USERコマンドで定義し、ユーザ名はCREATE USERコマンドで定義し、パスワード、表領域制限はCREATE USER又はALTER USERコマンドで定義し、権限付与はGRANTコマンドを使用する。

2. ユーザ作成手順

■ユーザ作成手順

  1. データベース管理者用ユーザでログインする。
    (例)「SYS」ユーザ又は「SYSTEM」ユーザ又はDBA権限を持つユーザ
  2. ユーザを作成する(CREATE USER 〜)
    ユーザ名とパスワードを決める。
    (必要に応じて、表領域を定義する)
  3. ユーザに各々適した権限を与える。(GRANT 〜)

■「SYS」や「SYSTEM」ユーザは〜
データベースそのものを管理するデータディクショナリの所有者でもあります。はSYSユーザが所有している

SYSやSYSTEMユーザはOracleシステム自体に関わる重要なデータの所有者であるため、初期作業以外では使用するべきではない。
管理用のユーザを作成し、そのユーザにDBA権限を与えて使用するべきである。

3. ユーザ作成コマンド(基本)

すべて重要!!

[構文]

CREATE USER ユーザ名
IDENTIFIED BY パスワード
[ DEFAULT TABLESPACE デフォルト表領域名 ]
[ TEMPORARY TABLESPACE テンポラリ表領域名 ]
[ QUOTA サイズ(K/M) ON 表領域名 ];

※QUOTAは一度に複数指定できる

[補足]

4. ユーザ作成コマンド(応用)

すべて重要!!

クォータの指定を省略した場合でも、テンポラリ表領域はシステムが適宣割り当ててくれるので、ソートなどの作業は可能です。
テンポラリ表領域はクォータの指定は必要ない!!

5. ユーザ設定の確認

すべて重要!!

■ユーザに関するデータ・ディクショナリで見れる情報

user_users
名前NULL?
USERNAMENOT NULLVARCHAR2(30)
USER_IDNOT NULLNUMBER
ACCOUNT_STATUSNOT NULLVARCHAR2(32)
LOCK_DATE
DATE
EXPIRY_DATE
DATE
DEFAULT_TABLESPACENOT NULLVARCHAR2(30)
TEMPORARY_TABLESPACENOT NULLVARCHAR2(30)
CREATEDNOT NULLDATE
INITIAL_RSRC_CONSUMER_GROUP
VARCHAR2(30)
EXTERNAL_NAME
VARCHAR2(4000)
all_users
名前NULL?
USERNAMENOT NULLVARCHAR2(30)
USER_IDNOT NULLNUMBER
CREATEDNOT NULLDATE
dba_users
名前NULL?
USERNAMENOT NULLVARCHAR2(30)
USER_IDNOT NULLNUMBER
PASSWORD
VARCHAR2(30)
ACCOUNT_STATUSNOT NULLVARCHAR2(32)
LOCK_DATE
DATE
EXPIRY_DATE
DATE
DEFAULT_TABLESPACENOT NULLVARCHAR2(30)
TEMPORARY_TABLESPACENOT NULLVARCHAR2(30)
CREATEDNOT NULLDATE
PROFILENOT NULLVARCHAR2(30)
INITIAL_RSRC_CONSUMER_GROUP
VARCHAR2(30)
EXTERNAL_NAME
VARCHAR2(4000)

操作例で確認!!
ただし自分のユーザでログインする。また、dba_usersは参照できない。

6. ユーザの使用領域制限の確認

すべて重要!!

■BLOCKとは〜
ブロックサイズ(2から16k2k,4k,8k,16kのいずれか)の倍数で定義する。

■クォータに関するデータ・ディクショナリで見れる情報

user_ts_quotas
名前NULL?
TABLESPACE_NAMENOT NULLVARCHAR2(30)
BYTES
NUMBER
MAX_BYTES
NUMBER
BLOCKSNOT NULLNUMBER
MAX_BLOCKS
NUMBER
dba_ts_quotas
名前NULL?
TABLESPACE_NAMENOT NULLVARCHAR2(30)
USERNAMENOT NULLVARCHAR2(30)
BYTES
NUMBER
MAX_BYTES
NUMBER
BLOCKSNOT NULLNUMBER
MAX_BLOCKS
NUMBER

操作例で確認!!
ただし自分のユーザでログインする。また、dba_ts_quotasは参照できないため、user_ts_quotasで確認する。

7. ユーザ設定の変更

[構文]

ALTER USER ユーザ名
[ IDENTIFIED BY パスワード ]
[ DEFAULT TABLESPACE デフォルト表領域名 ]
[ TEMPORARY TABLESPACE テンポラリ表領域名 ]
[ QUOTA サイズ(K/M) ON 表領域名 ];

※CREATEがALTERになっただけで、中身はまったく同じ!!

■変更できるユーザの設定情報は次の通り。

  1. パスワード(IDETIFIED BY パスワード)
  2. デフォルト表領域(DEFAULT TABLESPACE 表領域名)
  3. テンポラリ表領域(TEMPORARY TABLESPACE 表領域名)
  4. 容量制限(QUOTA サイズ ON 表領域名)

ユーザ名以外のすべてを変更できる!!

■パスワードは管理者ユーザ(DBA権限を持つユーザ)だけでなく、ユーザ自身も自分のパスワードを変更できる

[操作確認]

自分のパスワードを変更し、ログインしなおしてみよう。

8. ユーザの削除

[構文]

DROP USER ユーザ名 [ CASCADE ];

[まとめ]

[補足]

自分がどんなオブジェクトを持っているかを確認するには、データ・ディクショナリuser_objectsを参照する。

SELECT object_name, object_type, status
FROM user_objects;

また、管理者が特定のユーザのオブジェクトを確認するには、データ・ディクショナリdba_objectsを参照する。

SELECT object_name, object_type, status
FROM dba_objects
WHERE owner = 'ユーザ名';

[ TOP ]