データベース -> ORACLE -> 管理

SQL*Plusによるユーザ管理

ユーザの管理

ユーザの確認

ALL_USERS 全ユーザ情報を確認する

   Name               Null?    Type
  ------------------- -------- -------------
  USERNAME            NOT NULL VARCHAR2(30)
  USER_ID             NOT NULL NUMBER
  CREATED             NOT NULL DATE

DBA_USERS (SELECT ANY TABLE 権限が必要)

  Name                          Null?    Type
  ----------------------------- -------- ----------------------------
  USERNAME                      NOT NULL VARCHAR2(30)
  USER_ID                       NOT NULL NUMBER
  PASSWORD                               VARCHAR2(30)
  ACCOUNT_STATUS                NOT NULL VARCHAR2(32)
  LOCK_DATE                              DATE
  EXPIRY_DATE                            DATE
  DEFAULT_TABLESPACE            NOT NULL VARCHAR2(30)
  TEMPORARY_TABLESPACE          NOT NULL VARCHAR2(30)
  CREATED                       NOT NULL DATE
  PROFILE                       NOT NULL VARCHAR2(30)
  INITIAL_RSRC_CONSUMER_GROUP            VARCHAR2(30)
  EXTERNAL_NAME                          VARCHAR2(4000)
DBA_USERSの参照

SQL> select USERNAME,ACCOUNT_STATUS from DBA_USERS;

USERNAME                       ACCOUNT_STATUS
------------------------------ --------------------------------
MGMT_VIEW                      OPEN
SYS                            OPEN
SYSTEM                         OPEN
DBSNMP                         OPEN
SYSMAN                         OPEN
BKOPE                          OPEN
SCOTT                          OPEN
SUZUKI                         EXPIRED
OUTLN                          EXPIRED & LOCKED
MDSYS                          EXPIRED & LOCKED

SQL>

USER_USERS (データベースに接続中のユーザを出力)

SYSDBA/SYSOPER権限ユーザの確認

SQL> select * from v$pwfile_users;

USERNAME                       SYSDB SYSOP
------------------------------ ----- -----
SYS                            TRUE  TRUE
SUZUKI                         TRUE  TRUE

SQL>

ユーザの作成

SQL>
SQL> CREATE USER KINJOU
  2  IDENTIFIED BY passwd
  3  DEFAULT TABLESPACE KK
  4  TEMPORARY TABLESPACE TEMP;

User created.

SQL> select username,account_status from dba_users where username='KINJOU';

USERNAME                       ACCOUNT_STATUS
------------------------------ --------------------------------
KINJOU                         OPEN

SQL>

パスワードの変更

SQL>
SQL> password KINJOU
Changing password for KINJOU
New password: ******
Retype new password: ******
Password changed
SQL>

アカウントのロック&ロック解除


 現在の状態を確認 
SQL> select USERNAME,ACCOUNT_STATUS from DBA_USERS where USERNAME='KINJOU';

USERNAME                       ACCOUNT_STATUS
------------------------------ --------------------------------
KINJOU                           OPEN

SQL>


 アカウントをロックする 

SQL> alter user KINJOU account lock ;

User altered.

 ロックされたかを確認 

SQL> select USERNAME,ACCOUNT_STATUS from DBA_USERS where USERNAME='KINJOU';

USERNAME                       ACCOUNT_STATUS
------------------------------ --------------------------------
KINJOU                           LOCKED

SQL>

 アカウントをロックを解除する 

SQL> alter user KINJOU account unlock ;

User altered.

 ロックが解除されたかを確認 

SQL> select USERNAME,ACCOUNT_STATUS from DBA_USERS where USERNAME='KINJOU';

USERNAME                       ACCOUNT_STATUS
------------------------------ --------------------------------
KINJOU                           OPEN

SQL>

ユーザの削除


SQL> drop user rman;
drop user rman
*
行1でエラーが発生しました。:
ORA-01922: RMAN'を削除するにはCASCADEを指定する必要があります

ユーザーのスキーマ内にあるすべてのオブジェクトを削除する
CASCADE オプションが必要。

SQL> drop user rman cascade;

ユーザーが削除されました。

SQL>

表領域の割り当て制限


 ユーザ JACK にテーブルスペース COMMON 領域を 10MB 使用許可させる場合

SQL> alter user JACK quota 10m on COMMON;

ユーザが変更されました。

SQL>

変更した内容を確認する

SQL> select tablespace_name,username,max_bytes from dba_ts_quotas
  2  where username='JACK';

TABLESPACE_NAME USERNAME    MAX_BYTES
--------------- ---------- ----------
COMMON          JACK         10485760

SQL>


 ユーザ JACK にテーブルスペース COMMON 領域を 無制限使用許可させる場合

SQL> alter user JACK quota unlimited on COMMON;

ユーザが変更されました。

SQL>


変更した内容を確認する 無制限Unlimited の場合 値は -1 となる
SQL> select tablespace_name,username,max_bytes from dba_ts_quotas
  2  where username='JACK';

TABLESPACE_NAME USERNAME    MAX_BYTES
--------------- ---------- ----------
COMMON          JACK               -1

SQL>


権限の管理

権限の確認方法

権限を確認するには以下のテーブルに問い合わせを行う。

DBA_SYS_PRIVS (参照するには SELECT ANY TABLE権限が必要)

 Name              Null?    Type
 ----------------- -------- ----------------------------
 GRANTEE           NOT NULL VARCHAR2(30)
 PRIVILEGE         NOT NULL VARCHAR2(40)
 ADMIN_OPTION               VARCHAR2(3)

USER_SYS_PRIVS (データベースに接続しているユーザ自身の権限を確認)

 Name              Null?    Type
 ----------------- -------- ----------------------------
 USERNAME                   VARCHAR2(30)
 PRIVILEGE         NOT NULL VARCHAR2(40)
 ADMIN_OPTION               VARCHAR2(3)

SESSION_PRIVS (セッションで使用可能な権限を確認)

 Name              Null?    Type
 ----------------- -------- ----------------------------
 PRIVILEGE         NOT NULL VARCHAR2(40)

権限の付与&剥奪


 ユーザ: KINJOU に SYSDBA,SYSOPER 権限を付与する

SQL>
SQL> grant SYSDBA,SYSOPER to KINJOU ;

Grant succeeded.

SQL> select * from v$pwfile_users;

USERNAME                       SYSDB SYSOP
------------------------------ ----- -----
SYS                            TRUE  TRUE
KINJOU                         TRUE  TRUE

SQL>



 ユーザ: KINJOU から SYSDBA 権限を剥奪する

SQL> revoke SYSDBA from KINJOU;

Revoke succeeded.

SQL> select * from v$pwfile_users;

USERNAME                       SYSDB SYSOP
------------------------------ ----- -----
SYS                            TRUE  TRUE
KINJOU                         FALSE TRUE

SQL>

ロールの管理

事前定義ロール

CONNECT

一般ユーザ用の基本的なシステム権限のセット
  • ALTER SESSION
  • CREATE CLUSTER
  • CREATE DATABASE LINK
  • CREATE SEQUENCE
  • CREATE SESSION
  • CREATE SYNONYM
  • CREATE TABLE
  • CREATE VIEW

RESOURCE

開発者用のシステム権限のセット
  • CREATE CLUSTER
  • CREATE INDEXTYPE
  • CREATE OPERATOR
  • CREATE PROCEDURE
  • CREATE SEQUENCE
  • CREATE TABLE
  • CREATE TRIGGER
  • CREATE TYPE

DBA

データベース管理者用のシステム権限のセット
・全てのシステム権限

ロールの付与・剥奪

ロールを付与する

SQL> grant connect to user01;

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

SQL>

ロールを剥奪する

SQL> revoke connect from user01;

取消しが成功しました。

SQL>
      Document-Folder          一覧
HP-UX
HULFT
JAVA
JP1
JavaScript
Linux
MAC
PHP
Perl
Python
Ruby
SOA
Solaris
Unix全般
Windows
XML
エクセル
スタイルシート
セキュリティー
データベース
ネットワーク
パソコン
ブラウザ
プログラム構文
仮想化
          RSS-Folder
ニュース
   アットマーク・アイティ(@IT)
   シンクイット(ThinkIT)
   インターネットコム
   インターネットウォッチ
   日経IT-Pro
   日経パソコン
   CNET Japan
   ZD-NetJapan
   MYCOM
   RBB-Today
ベンダー
   日本IBM
   日本HP
   サンマイクロシステムズ
   NEC
   富士通
   日立
ソフトウェア
   マイクロソフト
   トレンドマイクロ
   オラクル
   サイボウズ
   Mozilla
   野村総合研究所
   (その他ソフトウェア企業)
更新履歴 一覧
 07/08 PERF
プログラム構文
 07/07 PERF
プログラム構文
 06/25 オブジェクトプログラミング2
Perl>サンプル
 07/12 クローン作成
仮想化>vCenter
 07/12 vyatta設定
ネットワーク>vyatta
 07/12 vyattaインストール
ネットワーク>vyatta
 07/12 リポジトリサーバ
Linux>サーバ構築
 07/05 VMwareのインストール
仮想化>VMware
 07/05 PXEブート
仮想化>KVM
 07/01 DHCPでのPXEブート
仮想化>KVM
 06/27 qcow2仮想DISK作成
仮想化>KVM
 06/13 NWの設定
仮想化>VMwareEsxi
 06/13 IPアドレスの変更
仮想化>VMwareEsxi
 06/12 自動ssh
Unix全般>シェル>Bash
 06/12 diffプログラミング
Python
Google