Oracleデータベースを使用する際に、データベース管理者がはじめにデータベースにユーザアカウントを作成する必要がある。
作成したユーザごとに、データベース内で行うさまざまな操作権限を付与する必要がある。データベースにアクセスするユーザは、データベースで認証を受ける必要がある。
■ユーザアカウントの作成
ユーザがデータベースにアクセスするためには、データベースに作成された有効なユーザアカウントを使用して、データベースに接続する必要がある。
無許可のユーザに使用されることを防ぐために、各ユーザアカウントには、パスワードが紐付いている。
ユーザ属性
ユーザアカウントを作成した際に、ユーザ属性をユーザアカウントに設定する必要がある。これらの情報は、SYSTEM表領域のデータディクショナリに格納される。
ユーザ属性 | 説明 |
---|---|
名前 | ユーザアカウントを識別する名前。ユーザ名という。 |
データベース認証パスワード | ユーザ名に紐づくパスワード。ユーザはデータベースとの接続確立時にパスワードの入力を求められる。入力不一致の場合は、アクセスできない。 パスワードはデータディクショナリに暗号化されて格納される。Oracle Database 12cでは、パスワードの大文字・小文字が区別される。 |
デフォルト表領域 | ユーザがオブジェクトを作成する際に、そのオブジェクトの格納先(表領域)を指定しなかった場合に、使用される表領域。ただし、ユーザアカウントにオブジェクトを作成する権限、表領域の割当制限が設定されていない場合は、オブジェクトに対して、領域を割り当てることができない。 ユーザアカウントに対して、デフォルト表領域を指定しない場合は、デフォルトの永続表領域(表領域の作成時に指定できる)が暗黙的に設定される。 |
一時表領域 | ユーザが一時セグメントの作成を必要とするSQL文(ソート処理、表の結合など)を実行した際に、使用される表領域。 ユーザアカウントに対して、一時表領域を指定しない場合は、デフォルトの一時表領域(一時表領域の作成時に指定できる)が暗黙的に指定される。 |
表領域の割当制限 | ユーザに対して、使用を許可する表領域内の容量。ユーザが使用可能な表領域ごとに設定する。これによって、特定のスキーマのオブジェクトが使用するディスク領域の容量を選択的に制限できる。デフォルトでは全ての表領域に対して0が設定されており、表領域の使用は許可されていない。ただし、一時表領域やUNDO表領域は、割当制限の設定がなくても使用できる。 |
アカウントステータス(ロックまたはロック解除) | ログインできる状態(ロック解除)、またはログイン禁止の状態(ロック)を指定する。データベースにログインするには、ロック解除を設定されている必要がある。ロックされているユーザアカウントを使用する場合は、データベース管理者がロックを解除する必要がある。 |
パスワードステータス(有効または無効) | パスワードを無効(期限切れ)にするか、有効にするかを指定する。パスワードが無効になった場合、ユーザは次回のログイン時にパスワードを変更する必要がある。 |
新しく作成したユーザアカウントを使用して、データベースに接続するには、そのユーザアカウントにCREATE SESSIONシステム権限が付与されている必要がある。
ユーザアカウントを作成すると、ユーザのためのスキーマ(ユーザ名と同名)が同時に作成される。スキーマとは、表や索引などを作成した際の論理的なコンテナ(入れ物)のことです。
■EM Expressを使用したユーザアカウントの作成
■SQL文を使用したユーザアカウントの作成
SQL文を使用して、ユーザアカウントを作成するには、CREATE USER文を使用し、INDENTIFIED BY句でパスワードを指定する。
通常は、ユーザアカウント作成時に、パスワード、デフォルト表領域、一時セグメントが作成される一時表領域、表領域割当制限、およびプロファイルを指定します。
CREATE USER ユーザ名
INDENTIFIED BY パスワード
[DEFAULT TABLESPACE 表領域名]
[TEMPORARY TABLESPACE 表領域名]
[QUOTA サイズ ON 表領域名]
[PROFILE プロファイル];
■ユーザアカウントのロック/ロック解除
一定回数連続して、ログインに失敗すると、ユーザアカウントをロックするように設定することができる。
特定のユーザアカウントによるデータベスへのアクセスを一時的に拒否するには、ユーザアカウントを手動でロックします。ユーザアカウントがロックされているとそのユーザで接続しようとしても、ユーザアカウントがロックされていると、そのユーザで接続しようとしても、データベースアクセスで弾かれて、ロックされている旨のエラーメッセージが表示される。
ロックを解除すれば、再度、そのユーザでログインできるようになる。
ユーザが所有するオブジェクトを保持したまま、そのユーザによるデータベースへのアクセスを拒否したい場合は、ユーザアカウントの削除ではなく、ユーザアカウントのロックによって、実現できる。
■EM Expressを使用したロック及びロック解除
■SQL文を使用したロックおよびロック解除
SQL文を使用して、ロック、およびロック解除を行うことができる。
ALTER USER文を用いる。
ロックの設定
ALTER USER ユーザ名 ACCOUNT LOCK;
ロックの解除
ALTER USER ユーザ名 ACCOUNT UNLOCK;
■パスワードポリシー
パスワードポリシーによって、ユーザに対して、最低文字数、有効期限などパスワードに関するルールを設定できる。
ログインセキュリティをパスワードに依存するデータベースシステムでは、高度なセキュリティを保つために、常にパスワードの機密を保たなければなりません。ユーザアカウントを作成するとプロファイルというデータベースオプションを介して、デフォルトのパスワードポリシーが自動的に割り当てられます。
プロファイルは、データベースのリソース使用制限とパスワードポリシーを設定するためのオブジェクトです。ユーザは必ず1つのプロファイルが割り当てられます。
ユーザにプロファイルが明示的に割り当てられていない場合は、DEFAULTという名前のプロファイルが割り当てられます。
DEFAULTプロファイルのデフォルトのパスワードポリシーは下記のように設定されます。
・ユーザアカウントのパスワードは、180日間で、自動的に期限切れとなる。
・パスワードの期限切れの後、最初にログインした7日間の後、ユーザアカウントがロックされるので、最初のログイン後、7日以内にパスワードを変更する必要がある。
・ログインに10回失敗すると、ユーザアカウントが1日ロックされる。
DEFAULTプロファイルのパスワードに関する属性を変更すると、DEFAULTプロファイルが割り当てられている全てのユーザのパスワードポリシーが変更される。
■EM Expressを使用したデフォルトのパスワードポリシーの変更