UJP - 技術情報

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

     

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

  • ユーザからRESOURCEロールを削除する

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>



広告スペース
Google