もんじゅ会議室 > せんちゃん専用掲示板 >
第10回 プロファイル (パスワード・セキュリティとリソースの管理) 投稿者 とく 日時 2003 年 9 月 22 日 12:54:53:

(回答先: 第8回 Redoログファイル 投稿者 とく 日時 2003 年 9 月 22 日 12:52:46)

第10回 プロファイル (パスワード・セキュリティとリソースの管理)
http://www.seshop.com/se/edu/shikaku/omo/miti/miti_gold10.asp?educat=gold2

「表領域とデータファイル」「Redoログファイル」「制御ファイル」とDBAの王道(?)
が続きましたので、たまには、ちょと雰囲気の違う話にしましょう。「プロファイル」
ってわかりますか?実務優先でOracleに関わってきた方は、結構ユーザー作成回りの
“ネタ”は苦手なんですよね。ユーザー作成って毎日行う作業ではありませんから。
「むか〜し1回行ったことがあるけど、権限とかロールってあんまり気にしないんで
すよね。アプリケーションで全部コントロールしてるから・・・」と言い訳(?!)して
いる方を何人か知っていますよ。では、ユーザーを作成し、データベースに接続でき
る権限を与えます。ここまでは、Silver取得のために勉強しましたね。

SQL> CREATE USER hayashi
 2 IDENTIFIED BY oracle;

ユーザーが作成されました。

SQL> GRANT create session TO hayashi;

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

ところで、このユーザーを使って同時に何人データベースに接続できるのでしょう?
また、exitしないで3日間接続したまま・・・という利用の仕方はできるのでしょうか?
本当にそのような利用が必要なら仕方がありませんが、「さあ、データベースを停止
してバックアップを行うぞ!」と、思ったらexitし忘れたままのセッションがネット
ワーク上のどこかにいるからNORMAL SHUTDOWNできない。という事態が発生するのも
困ったものです。(もちろん、そんな時はV$SESSIONで調べて、KILL SESSIONして・・・
という方法があったことも思い出しておいてください。)

そこで、「セッション毎の接続経過時間:CONNECT_TIME」や「非アクティブ状態時間
:IDLE_TIME」(接続しているけれどSQL文を発行しなければデータベースとのやり取
りは発生していませんからね。)、「CPU時間の合計:CPU_PER_SESSION / CPU_PER_C
ALL」「ユーザー毎の同時実行セッション数:SESSION_PER_USER」を制限することが
できるのがプロファイルです。

1時間以上接続しっぱなしは許さないぞ!と、思えばCONNECT_TIME 60と定義します。
「定義」といえば、CREATE・・・では、お勉強用に作成したユーザーたちのためにeduc
という名前のプロファイルを作ってみましょう。

SQL> CREATE PROFILE educ LIMIT
 2 SESSIONS_PER_USER  1
 3 CONNECT_TIME    60
 4 IDLE_TIME      30;

プロファイルが作成されました。

さて、これだけでいいのでしょうか?
educプロファイルは作りましたが、これだけでは、systemユーザーは今まで通り無制
限、お勉強用に作成したhayashiユーザーはeducプロファイルの制限に従う・・・と、強
制はできませんよね。そうです!プロファイルは、ユーザー毎に割当てを変えたいの
です。ということは、「educプロファイルをユーザーに割当てたい。」といわれたら、
ALTER USERまたはCREATE USER文を使用するのです。


プロファイルの割当ては現在接続中のセッションには影響しません。これ以降のセッ
ションに対して有効です。さらに注意事項があります。

プロファイルには、今お話をしたCPU時間など「@ リソースの使用を制限する」こと
と「A パスワードを管理する」ことができます。「@ リソースの使用を制限する」
ためには、初期化パラメータのRESOURCE_LIMITをTRUEにしてデータベースの再起動を
する必要があります。あるいは、ALTER SYSTEM文でTRUEに設定しても構いません。こ
のパラメータの変更を忘れないで下さい。

さて、「A パスワードを管理する」とは、どんなことができるのでしょう?皆さん
は、OSにログインする時、Oracleに接続する時・・・パスワードを入力されると思いま
すが、まめに変更していますか?えっ私?最近物忘れが激しいから、忘れないように
ずっ〜と同じパスワードをどこでも使用しています。えっ?危険じゃないかって?は
い、そのとおりだと思います。

そこで、「パスワードの有効日数:PASSWORD_LIFE_TIME」、「パスワードを再使用で
きるようになるまでの日数:PASSWORD_REUSE_TIME」、「パスワードを再使用できる
ようになるまでの変更回数:PASSWORD_REUSE_MAX」などを設定することができます。
せっかく、パスワードの有効日数をきめて変更を促しても、また同じパスワードを設
定したのでは有効日数を設けた意味がありませんからね。私のような無精者がいるこ
とをよくわかっているのです。先程、作成したeducプロファイルをディクショナリで
確認してみましょう。

SQL> select * from dba_profiles
 2 where profile = 'EDUC';

PROFILE   RESOURCE_NAME       RESOURCE  LIMIT
---------- -------------------------- ----------- -------
EDUC    COMPOSITE_LIMIT      KERNEL   DEFAULT
EDUC    SESSIONS_PER_USER     KERNEL   1
EDUC    CPU_PER_SESSION      KERNEL   DEFAULT
EDUC    CPU_PER_CALL        KERNEL   DEFAULT
EDUC    LOGICAL_READS_PER_SESSION KERNEL   DEFAULT
EDUC    LOGICAL_READS_PER_CALL   KERNEL   DEFAULT
EDUC    IDLE_TIME         KERNEL   30
EDUC    CONNECT_TIME        KERNEL   60
EDUC    PRIVATE_SGA        KERNEL   DEFAULT
EDUC    FAILED_LOGIN_ATTEMPTS   PASSWORD  DEFAULT
EDUC    PASSWORD_LIFE_TIME     PASSWORD  DEFAULT
EDUC    PASSWORD_REUSE_TIME    PASSWORD  DEFAULT
EDUC    PASSWORD_REUSE_MAX     PASSWORD  DEFAULT
EDUC    PASSWORD_VERIFY_FUNCTION  PASSWORD  DEFAULT
EDUC    PASSWORD_LOCK_TIME     PASSWORD  DEFAULT
EDUC    PASSWORD_GRACE_TIME    PASSWORD  DEFAULT

16行が選択されました。

では、educプロファイルにパスワードの有効日数は90と設定しましょう。

SQL> ALTER PROFILE educ LIMIT
 2 PASSWORD_LIFE_TIME 90;

プロファイルが変更されました。

SQL> select * from dba_profiles
 2 where profile = 'EDUC'
 3 and resource_type = 'PASSWORD';

PROFILE RESOURCE_NAME      RESOURCE  LIMIT
-------- ------------------------- ---------- ----------
EDUC   FAILED_LOGIN_ATTEMPTS   PASSWORD  DEFAULT
EDUC   PASSWORD_LIFE_TIME    PASSWORD  90
EDUC   PASSWORD_REUSE_TIME    PASSWORD  DEFAULT
EDUC   PASSWORD_REUSE_MAX    PASSWORD  DEFAULT
EDUC   PASSWORD_VERIFY_FUNCTION PASSWORD  DEFAULT
EDUC   PASSWORD_LOCK_TIME    PASSWORD  DEFAULT
EDUC   PASSWORD_GRACE_TIME    PASSWORD  DEFAULT

7行が選択されました。

プロファイルはおわかりいただけましたか?
今回出てこなかったリソースの名前もちゃんと覚えておいてくださいね。
ユーサー作成、権限、ロールにまで話しはおよびませんでしたが、Silver取得の時に
覚えたことを復習しておいてください。次のDBA講座で取り上げて欲しいカテゴリが
ありましたら、info@oracle-master.org までご連絡ください。では、頑張ってくだ
さいね!


 次へ  前へ


フォローアップ:

このページに返信するときは、このボタンを押してください。投稿フォームが開きます。


 

 

 

 

せんちゃん専用掲示板掲示板へ