Oracleユーザの作成と設定
Oracleユーザの作成と設定
0.改訂履歴
- 1996.11.27 初版
- 1996.11.28 create user文に間違いがあった.
- 2001.01.15 テーブルスペースについて追加
- 2001.01.21 ロール作成とユーザ作成にドキュメントを分けた.
- 2001.10.08 一時的にパスワードを変更する方法を載せた.
1.はじめに
このドキュメントでは,ロールの作成方法について説明する.
事前に「Oracleユーザ管理基礎知識」を理解しておく必要がある.
2.ユーザの作成
ユーザを作成するには,2通りの方法がある. 方法といってもSecurity Managerを使ってGUIベースで行なうか,SQL文を書くかの違いであり,Secyriy
Managerでも実際にはSQL文を発行しているのみである.
ここでは,コマンドラインでの作成方法について説明する.
- サーバマネージャかSQL*Plusを起動し,DBA権限のユーザ(system)でログインする.
- 新規ユーザ「
"testuser"
」をパスワード「"userpasswd"
」として作成する.
CREATE USER testuser IDENTIFIED BY userpasswd
|
- 新規作成したユーザ
"testuser"
に"testrole"
ロールを付与する.
GRANT testrole TO testuser
|
REVOKE resource FROM testuser; |
3.テーブルスペース関連
ここでは,ユーザアカウント作成時に設定できるその他のオプションについて説明する.
5.1.デフォルトのテーブルスペースの指定
上記のようにユーザを作成すると,testuserユーザが作成する表やインデックス等は,Oracleが利用するSYSTEMデータベースに作成されるようになる.
このままでは不具合があるので,ユーザを作成する際にデフォルトのテーブルスペースを設定する.
CREATE USER testuser IDENTIFIED BY userpasswd
DEFAULT TABLESPACE tablespace_name;
|
5.2.テンポラリテーブルスペースの指定
作成するユーザがワークエリアとして利用するテーブルスペースについて指定することができる.
CREATE USER testuser IDENTIFIED BY userpasswd
DEFAULT TABLESPACE tablespace_name;
TEMPORARY TABLE SPACE temporary_tablespace_name;
|
5.3.テーブルスペースの制限を設定する
CREATE USER testuser IDENTIFIED BY userpasswd
DEFAULT TABLESPACE tablespace_name;
TEMPORARY TABLE SPACE temporary_tablespace_name
QUOTA 500 K ON temporary_tablespace_name
QUOTA 10 M ON tablespace_name;
|
この設定では,temporary_tablespace_nameに対して,500K,tablespace_nameに対して10MBの利用制限を行っている.
5.4.ユーザが持っている表領域の使用制限を無限大に設定する
ALTER USER testuser QUOTA UNLIMITED ON tablespace_name;
|
5.5.プロファイルを設定する
CREATE USER testuser IDENTIFIED BY userpasswd
PROFILE profile_name;
|
6.パスワードを変更する
ALTER USER testuser IDENTIFIED BY newpasswd |
7.ユーザを削除する
DROP USER testuser;
DROP USER testuser CASCADE; |
ユーザがオブジェクトを持っている場合は,単にDROP USERでは消えないので,CASCADEオプションを指定して,オブジェクト事消す必要がある.
8.ユーザ情報の確認
8.1.現在ログインしているユーザの提議情報を確認する.
SQL> connect scott/tiger
接続されました。
SQL> select * from user_users;
USERNAME USER_ID ACCOUNT_STATUS LOCK_DAT EXPIRY_D
------------------- --------- -------------------- -------- --------
DEFAULT_TABLESPACE TEMPORARY_TABLESPACE CREATED
------------------- ------------------------------ --------
EXTERNAL_NAME
--------------------------------------------------------------------
SCOTT 20 OPEN
USER_DATA TEMPORARY_DATA 98-06-30
SQL>
|
8.2.他のユーザのユーザ情報を確認する.
SQL> connect system/manager
接続されました。
SQL> select username from dba_users;
USERNAME
------------------------------
SYS
SYSTEM
ORDSYS
DEMO
MDSYS
QQQ
EEE
TEST
DBSNMP
SCOTT
CCC
11行が選択されました。
SQL> select * from dba_users where username = 'SYSTEM';
USERNAME USER_ID PASSWORD
------------------------- --------- ------------------------------
ACCOUNT_STATUS LOCK_DAT EXPIRY_D DEFAULT_TABLESPACE
--------------------------- -------- -------- --------------------
TEMPORARY_TABLESPACE CREATED PROFILE
------------------------------ -------- --------------------------
EXTERNAL_NAME
------------------------------------------------------------------
SYSTEM 5 D4DF7931AB130E37
OPEN USER_DATA
TEMPORARY_DATA 98-06-30 DEFAULT
SQL>
|
8.3.表領域の制限を表示する
SQL> connect scott/tiger
接続されました。
SQL> select * from user_ts_quotas;
TABLESPACE_NAME BYTES MAX_BYTES BLOCKS MAX_BLOCKS
--------------------------- --------- --------- --------- ----------
USER_DATA 61440 0 30 0
SQL>
|
- BYTE
- MAX_BYTES
- 最大利用可能バイト数 UNLIMITEDの場合は-1
8.4.オブジェクトに対するアクセス権の表示
調べたいこと |
調べる方法 |
自分が誰の持ち物にアクセスできるか |
select * from user_tab_privs_recd;
|
誰が自分の持ち物にアクセスできるか |
select * from user_TAB_PRIVS_MADE;
|
8.5.一時的にユーザのパスワードを変更する
ユーザのパスワードがわからないときに,一時的に変更して使用すし,使用した後は,元のパスワードに戻す.
- systemアカウントでSQL*Plusに接続する.
- dba_users表からパスワードを変更したいSCOTTユーザの情報を検索する.
SQL> connect system/manager
接続されました。
SQL> select username,password from dba_users
2 where username = 'SCOTT';
USERNAME PASSWORD
------------------------------ ------------------------------
SCOTT F894844C34402B67
SQL>
|
- パスワードを変更して,変更後のパスワードで接続してみる.
SQL> alter user scott identified by billgates
2 ;
ユーザーが変更されました。
SQL> connect scott/billgates
接続されました。
SQL>
|
- パスワードを戻して,以前のパスワードで接続してみる.
SQL> connect system/manager
接続されました。
SQL> alter user scott identified by values 'F894844C34402B67'
2 ;
ユーザーが変更されました。
SQL> connect scott/tiger
接続されました。
SQL>
|