@WIKI

Oracleユーザーを管理する

最終更新:

atyou

- view
管理者のみ編集可
 Oracleデータベースでは、次のユーザーが自動作成されます。
ユーザー名 説明
SYS データベースの管理ユーザー。データディクショナリの実表やビューを所有する
SYSTEM データベースの管理ユーザー。ツールや製品で使用される内部表などを所有する
SYSMAN OEM(Oracle Enterprise Manager)の管理ユーザー。OEMに接続して管理作業を行う
DBSNMP OEMの内部ユーザー。データベースを管理する際、内部的に接続して操作を行う
サンプルスキーマ サンプルスキーマをインストールした場合に作成される。HR(Human Resources)による人事データ(EMPLOYEES表、DEPARTMENTS表など)、OE(Order Entry)による受注データ(CUSTOMERS表、ORDERS表など)、SH(Sales History)によるデータウェアハウスデータ(SALES表、PRODUCTS表など)が該当する

ユーザーの作成

ユーザーを作成するための基本構文は次のとおりです。
CREATE USER ユーザー名
IDENTIFIED BY パスワード
[DEFAULT TABLESPACE デフォルト表領域]
[TEMPORARY TABLESPACE 一時表領域];

ユーザー名以外は作成後に変更することも可能です。ALTER USERコマンドを使用します。
[ ]で囲んだものは省略が可能です。省略時は、それぞれデータベースレベルで設定されたデフォルト値が使用されます。

OEMを使用して新規ユーザーを作成するには、「管理」タブ→「セキュリティ」リージョンの「ユーザー」ページを使用します。完全な新規作成だけでなく、既存のユーザーを使用した類似作成も可能です。ユーザーの作成時に設定できる情報には次のものがあります
設定項目 説明
ユーザー名 必須情報。後から変更できない。ほかのユーザー名やロール名と競合しない名前にする
プロファイル リソース制限やパスワード管理に使用するオブジェクトであるプロファイルを指定できる。特に使用しない場合、「DEFAULT」を選択
認証タイプとパスワード 認証タイプに「パスワード」を指定する場合、パスワードの入力は必須
デフォルト表領域 ユーザーがセグメントを作成するとき、明示的に指定しない場合に使用される表領域
一時表領域 ディスクソートなど一時的な領域が必要な場合に使用される表領域


領域割り当て制限(QUOTA)

領域割り当て制限(QUOTA)は、ユーザーがセグメントを作成する場合、対象となる表領域にどこまで領域を使用してよいかを設定するものです。デフォルトでは一時表領域を除き、どの表領域にも領域確保ができないようになっています。

領域割り当て制限を設定するには、Enterprise ManagerもしくはCREATE USER文、ALTER USER文を使用します。

{CREATE | ALTER} USER ... QUOTA サイズ ON 表領域名;

サイズに「UNLIMITED」を指定した場合、無制限に表領域が割り当てられます。

また、UNLIMITED TABLESPACEシステム権限が付与された場合、QUOTA設定は無視され、すべての表領域に対して無制限の領域割り当てが行われます。 UNLIMITED TABLESPACEシステム権限は、RESOURCEロールを付与した場合にも同時に付与されます。


リソース使用量の制御

プロファイルは、データベースとインスタンスに対するリソース制限のセットに名前を付けたものです。すべてのOracleユーザーには1つのプロファイルが割り当てられています。明示的にユーザーにプロファイルを設定しない場合、DEFAULTプロファイルが割り当てられます。

DEFAULTプロファイルは、独自に作成するプロファイルの基礎セットとしても使用できます。

注意点として挙げられるのは、プロファイルを使用したリソース制限を行うためにはRESOURCE_LIMIT初期化パラメータをTRUEにする必要があることです。RESOURCE_LIMIT初期化パラメータがFALSEの場合、プロファイルの制限は無効になります。

プロファイルを使用してパスワードを管理することもできます。
パスワード管理に関しては「Oracle Databaseのセキュリティ」の回で解説します。



Oracleデータベースにおける権限には、
  • システム権限
  • オブジェクト権限
の2種類があります。
複数の権限をグループ化して管理するためのものとして、ロールがあります

システム権限

ユーザーに、データベースに対する特定の操作(テーブル作成、ユーザー作成など)を許可するものです。

システム権限の中には、「ANY」キーワードが含まれているものがあります。
これは、他スキーマにも権限が及ぶことを意味しています。

例えばCREATE TABLEシステム権限では、自分のスキーマにテーブルを作成することができます。
CREATE ANY TABLEシステム権限の場合はこれに加え、他スキーマとしてテーブルを作成することもできます。

システム権限を付与するには、次の構文を使用します。
GRANT 権限名 TO {ユーザー名 | PUBLIC | ロール名}
[WITH ADMIN OPTION]

ADMIN OPTIONを使用すると、付与されたユーザーは、別のユーザーにその権限を付与できるようになります。

データベースの起動や停止を行うために、SYSDBA権限とSYSOPER権限という特別な権限があります。

権限 説明
SYSDBA 起動、停止、データベースの作成、リカバリなどとすべてのデータベース権限
SYSOPER 起動、停止、基本的なリカバリのみ。データディクショナリなどへのアクセスは不可

オブジェクト権限

特定のオブジェクトに対する操作(他スキーマのオブジェクトへのアクセスなど)を許可するものです。

ユーザーは、自分のスキーマへのアクセスはすべて許可されています。ほかのスキーマにアクセスするためには、ANYキーワードを含むシステム権限、もしくはオブジェクト権限が必要です。

オブジェクト権限を付与する場合、次の構文を使用します。
GRANT {権限名 | ALL} ON オブジェクト名
TO {ユーザー名 | PUBLIC | ロール名}
[WITH GRANT OPTION]

ALLを使用すると、対象となるオブジェクトタイプに応じたすべての権限が付与されます。
GRANT OPTIONを使用すると、付与されたユーザーは、別のユーザーに対してその権限を付与することができます。

  • オブジェクト権限を付与できるのは、オブジェクトの所有者とWITH GRANT OPTIONで権限を付与されたユーザーです
  • データベース管理者でもオブジェクト権限を付与できません



スキーマ
オブジェクトが誰のものかあらわすもの。名前空間。
Oracleデータベースの場合、Oracleユーザーを作成すれば、そのユーザー名と同じスキーマが自動的に作成されます。
オブジェクトは、「スキーマ名.オブジェクト名」、つまり、「誰(スキーマ)の何」で管理される。

例) SCOTT.EMP ALLEN.EMP


【 期限切れパスワードについて 】

ユーザー・アカウントが期限切れパスワードの場合、データベース
 の接続時に、パスワードの変更要求が行われます
 パスワードを指定すると期限切れパスワード(EXPIRED)のチェックは、
 自動的に解除されます

《参考》ユーザー・アカウントがロック(LOCKED)の場合、ユーザーは、
データベースには、接続できません。データベース管理者が、ロック
を解除すると、データベースに接続できるようになります
目安箱バナー