CREATE PROFILE
CREATE PROFILE文では、プロファイルを作成します。プロファイルとは、データベース・リソースに対する制限のセットです。ユーザーにプロファイルを割り当てると、そのユーザーはプロファイルで指定された制限を超えることができなくなります。
必要な権限
ADMIN
TimesTen Scaleoutでの使用
この文は、TimesTen Scaleoutでサポートされています。
SQL構文
CREATE PROFILE profile LIMIT password_parameters password_parameters::= [FAILED_LOGIN_ATTEMPTS password_parameter_options] [PASSWORD_LIFE_TIME password_parameter_options] [PASSWORD_REUSE_TIME password_parameter_options] [PASSWORD_REUSE_MAX password_parameter_options] [PASSWORD_LOCK_TIME password_parameter_options] [PASSWORD_GRACE_TIME password_parameter_options] [{PASSWORD_COMPLEXITY_CHECKER|PASSWORD_VERIFY_FUNCTION} password_checker_options] password_parameter_options::= UNLIMITED|DEFAULT|constant password_checker_options::= function|NULL|DEFAULT function:: TT_VERIFY_FUNCTION|TT_STRONG_VERIFY_FUNCTION|TT_STIG_VERIFY_FUNCTION
パラメータ
| パラメータ | 説明 |
|---|---|
|
|
プロファイルの名前。 |
|
|
パスワード・パラメータは、パスワード・パラメータの名前とパスワード・パラメータの値(または制限)で構成されます。これには、パスワード複雑度チェッカ関数が含まれます。すべてのパラメータ(
|
|
|
ユーザーのアカウントがロックされるまでの、ユーザーによるデータベースへの接続試行の連続失敗回数を指定します。 |
|
|
ユーザーが認証に同じパスワードを使用できる日数を指定します。 |
|
|
これら2つのパラメータは、同時に使用する必要があります。
これらのパラメータを有効にするには、その両方に値を指定する必要があります。具体的には、次のようになります:
|
|
|
指定した回数連続して接続に失敗した後に、ユーザー・アカウントがロックされる日数を指定します。 |
|
|
猶予期間の開始後の日数を指定します。この間は、TimesTenが警告を示しますが、データベースへの接続は許可されます。猶予期間中にパスワードが変更されないと、そのパスワードは期限切れになります。このパラメータは、 |
|
|
パスワード・パラメータに制限がないことを示します。 |
|
|
このプロファイルのパスワード・パラメータに対する制限を省略することを示します。このプロファイルが割り当てられているユーザーは、このパスワード・パラメータの
|
|
|
|
|
|
パスワードに対するパスワード検証を実行するかどうかを示します。実行する場合は、検証に使用する関数を指定します。 functionは、サポートされている3つのパスワード複雑度チェッカ関数のいずれかを示します。TimesTenにパスワード検証を実行するように指示するには、これらの関数のいずれかを指定します。有効な値は次のとおりです:
|
説明: PROFILE文
-
CREATEPROFILE文を使用して、パスワード・リソースのプロファイルを作成します。パスワード・パラメータとは、パスワード・リソースに対する制限のセットです。ユーザーにプロファイルを割り当てると、そのユーザーはプロファイルで指定された制限を超えることができなくなります。ユーザーにプロファイルを割り当てていないと、TimesTenによってDEFAULTプロファイルが割り当てられます。パスワード管理とプロファイルの詳細は、『Oracle TimesTen In-Memory Databaseセキュリティ・ガイド』の「パスワード管理」を参照してください。 -
ユーザーのパスワード・パラメータ制限を指定するには、次の手順を実行します。
-
CREATEPROFILE文を使用して、パスワード・パラメータの制限を定義するプロファイルを作成します。 -
CREATEUSER文またはALTERUSER文を使用して、ユーザーにプロファイルを割り当てます。
-
-
各パスワード・パラメータの制限を定義する、
DEFAULTプロファイルがあります。このプロファイルは、これらのパラメータに最初にUNLIMITEDを定義します(パラメータに制限が設定されていないことを示します)。次の例外があります:-
FAILED_LOGIN_ATTEMPTS:10に設定されます。 -
PASSWORD_LOCK_TIME:0.0034722222222222日(5分、5/1440日)に設定されます。 -
PASSWORD_COMPLEXITY_CHECKER:NULLに設定されます。
これらの制限を変更するには、
ALTERPROFILE文を使用して、プロファイル名に"DEFAULT"を指定します。(DEFAULTは二重引用符で囲む必要があります)。詳細は、「ALTER PROFILE」を参照してください。 -
-
ユーザーにプロファイルが割り当てられていない場合、そのユーザーは
DEFAULTプロファイルに定義されている制限を受けます。ユーザーにプロファイルが割り当てられていて、そのプロファイルでパスワード・パラメータの制限が指定されていない場合や、パスワード・パラメータにDEFAULTが指定されている場合、そのユーザーはDEFAULTプロファイルで定義されているパスワード・パラメータの制限を受けます。 -
インスタンス管理者には、システム・プロファイルが割り当てられます。インスタンス管理者のプロファイルは、変更することも削除することもできません。
パスワード複雑度チェッカの検証について
パスワード複雑度チェッカの検証により、ユーザーのパスワードはパスワードを推測しようとする侵入者を十分に阻止できる複雑なものになります。CREATE PROFILE文でパスワード複雑度チェッカ関数を指定し、このプロファイルをユーザーに割り当てると、ユーザーはパスワード複雑度チェッカ関数で定義されている要件を満たすパスワードを作成することが必要になります。そのような要件は、指定した特定のパスワード複雑度チェッカ関数によって異なります。
TimesTenには、パスワードの複雑度を管理するために、TT_VERIFY_FUNCTION、TT_STRONG_VERIFY_FUNCTIONおよびTT_STIG_VERIFY_FUNCTIONのパスワード複雑度チェッカ関数が用意されています。これらの関数は、SYSスキーマに格納されています。
- 文字:大文字と小文字
- 数字:
0から9の数字 - 特殊: 文字でも数字でもない文字。
`~!@#$%^&*()_-+={}[]\/<>,.?':|(space)ノート:
-
1つ以上の特殊文字を使用する場合は、パスワード全体を二重引用符(
")で囲む必要があります。例外は、#と@の特殊文字です。(#または@を含むパスワードは、二重引用符で囲む必要がありません)。 -
パスワードには、セミコロン(
;)や二重引用符(")を含めることはできません。 -
パスワード全体を二重引用符で囲まないかぎり、パスワードの先頭は文字にする必要があります。
-
パスワード複雑度チェッカの検証に独自の関数を定義することはできません。CREATE USER文またはALTER USER文でIDENTIFIED BY句を使用すると、パスワードの複雑度がチェックされます。
TT_VERIFY_FUNCTION
TT_VERIFY_FUNCTIONは、次のパスワード複雑度チェッカの検証を実行します。
- パスワードは次のようにします:
- 8文字以上にする必要があります。
- これらの8文字のうちに、それぞれ少なくとも1つの文字、1つの数字、1つの特殊文字を含める必要があります。
- パスワードに使用できないものを次に示します。
- ユーザー名またはユーザー名を逆にしたもの
- データベース名
OracleまたはTimesTen
ノート:
比較では、大文字と小文字が区別されません。
TT_STRONG_VERIFY_FUNCTION
TT_STRONG_VERIFY_FUNCTIONは、次のパスワード複雑度チェッカの検証を実行します。
- 9文字以上にする必要があります。
- この9文字のうちに、それぞれ少なくとも2つの大文字、2つの小文字、2つの数字および2つの特殊文字を含める必要があります。
TT_STIG_VERIFY_FUNCTION
- 15文字以上にする必要があります。
- この15文字のうちに、それぞれ少なくとも1つの大文字、1つの小文字、1つの数字および1つの特殊文字を含める必要があります。
説明: パスワード複雑度チェッカの検証
TT_VERIFY_FUNCTION、TT_STRONG_VERIFY_FUNCTIONおよびTT_STIG_VERIFY_FUNCTIONに対するEXECUTE権限が必要です。TimesTenは、これらの関数に対するEXECUTE権限をPUBLICにデフォルトで付与します。SYSTEMプロファイルとDEFAULTプロファイルには、NULLの値がデフォルトで割り当てられます。NULL値は、これらのプロファイルにパスワード複雑度チェッカ関数が存在しないことを示します。そのため、パスワード複雑度チェッカの検証は実行されません。SYSTEMプロファイルを変更して、パスワード複雑度チェッカ関数を指定することはできません。システム・ユーザーのパスワードは、パスワード複雑度チェッカの検証の対象にはなりません。ALTERPROFILE文を使用すると、パスワード複雑度チェッカ関数を指定するためにDEFAULTプロファイルを変更できます。そうした関数は、PASSWORD_COMPLEXITY_CHECKER(またはPASSWORD_VERIFY_FUNCTION)句で指定します。- TimesTenの
TT_VERIFY_FUNCTION関数、TT_STRONG_VERIFY_FUNCTION関数およびTT_STIG_VERIFY_FUNCTION関数は、Oracle DatabaseのORA12C_VERIFY_FUNCTION関数、ORA12C_STRONG_VERIFY_FUNCTION関数およびORA12C_STIG_VERIFY_FUNCTION関数と同等のものです。 ttMigrateユーティリティを使用して以前のメジャー・リリース(18.1リリースなど)にダウングレードすると、データベース内の各プロファイルのPASSWORD_COMPLEXITY_CHECKERの値はNULLに設定されます。
パスワード複雑度チェッカ関数の制限
- パスワード複雑度チェッカ関数には、
SYSスキーマを指定できません。次に例を示します:Command> CREATE PROFILE my_profile LIMIT PASSWORD_COMPLEXITY_CHECKER SYS.TT_VERIFY_FUNCTION; 15187: Cannot specify schema name for password complexity checker function The command failed. - 独自のパスワード複雑度チェッカ関数を定義することはできません。
TT_VERIFY_FUNCTION、TT_STRONG_VERIFY_FUNCTIONまたはTT_STIG_VERIFY_FUNCTIONのパスワード複雑度チェッカ関数のみを使用してください。 - パスワード複雑度チェッカの検証は、新しく作成したパスワードにのみ実行されます。この新しいパスワードは、
CREATEUSER文またはALTERUSER文のIDENTIFIEDBY句を使用して指定します。TimesTenは、古いパスワードと新しいパスワードの違いを確認しません。 - パスワードの指定時に、マルチバイト文字はサポートされません。TimesTenは、マルチバイト文字が含まれるパスワードを検証しません。
例
次の各例では、CREATE PROFILE文の様々な使用方法を示します。各例では、サポートされている句の使用方法も示します。
- パスワード複雑度チェッカの検証の例:
- その他の例:
PASSWORD_COMPLEXITY_CHECKERに対するTT_VERIFY_FUNCTIONの指定
この例では、最初にプロファイルを作成して、TT_VERIFY_FUNCTION関数を指定します。その後で、dba_profilesシステム・ビューを問い合せて、このプロファイルにTT_VERIFY_FUNCTIONが割り当てられていることを確認します。このプロファイルが割り当てられたユーザーは、この関数のパスワード検証要件を満たすパスワードを指定する必要があります。
Command> CREATE PROFILE myprofile_pw1 LIMIT
PASSWORD_COMPLEXITY_CHECKER TT_VERIFY_FUNCTION;
Profile created.
Command> SELECT * FROM dba_profiles WHERE profile = 'MYPROFILE_PW1';
< MYPROFILE_PW1, FAILED_LOGIN_ATTEMPTS, PASSWORD, DEFAULT >
< MYPROFILE_PW1, PASSWORD_LIFE_TIME, PASSWORD, DEFAULT >
< MYPROFILE_PW1, PASSWORD_REUSE_TIME, PASSWORD, DEFAULT >
< MYPROFILE_PW1, PASSWORD_REUSE_MAX, PASSWORD, DEFAULT >
< MYPROFILE_PW1, PASSWORD_COMPLEXITY_CHECKER, PASSWORD, TT_VERIFY_FUNCTION >
< MYPROFILE_PW1, PASSWORD_LOCK_TIME, PASSWORD, DEFAULT >
< MYPROFILE_PW1, PASSWORD_GRACE_TIME, PASSWORD, DEFAULT >
< MYPROFILE_PW1, TEMP_SPACE_PER_SESSION_MAX, MEMORY, DEFAULT >
8 rows found.
sampleuser_pw1ユーザーを作成して、このユーザーにmyprofile_pw1プロファイルを割り当てます。TT_VERIFY_FUNCTIONの要件を満たしているパスワードを指定します。TT_VERIFY_FUNCTION関数の詳細は、「TT_VERIFY_FUNCTION」を参照してください。
Command> CREATE USER sampleuser_pw1
IDENTIFIED BY "A1!XXcg3" PROFILE myprofile_pw1;
User created.
sampleuser_pw2を作成してみます。ユーザーにmyprofile_pw1プロファイルを割り当てます。ユーザー名を逆にしたパスワードを大文字で指定します。CREATE USER文は失敗します。パスワードには、逆にしたユーザー名を含めることはできません。比較では、大文字と小文字が区別されない点に注意してください。
Command> CREATE USER sampleuser_pw2
IDENTIFIED BY "2WP_RESUELPMAS" PROFILE myprofile_pw1;
15186: Password complexity check for the specified password failed
15188: TT-20002: Password contains the username reversed
The command failed.PASSWORD_COMPLEXITY_CHECKERに対するTT_STRONG_VERIFY_FUNCTIONの指定
この例では、myprofile_pw2プロファイルを作成して、PASSWORD_COMPLEXITY_CHECKERパスワード・パラメータにTT_STRONG_VERIFY_FUNCTIONを指定します。その後で、sampleuser_pw2ユーザーを作成し、このユーザーにmyprofile_pw2プロファイルを割り当てます。パスワードはTT_STRONG_VERIFY_FUNCTION関数の要件を満たします。TT_STRONG_VERIFY_FUNCTION関数の詳細は、「TT_STRONG_VERIFY_FUNCTION」を参照してください。
Command> CREATE PROFILE myprofile_pw2 LIMIT
PASSWORD_COMPLEXITY_CHECKER TT_STRONG_VERIFY_FUNCTION;
Profile created.sampleuser_pw2ユーザーを作成して、このユーザーにmyprofile_pw2プロファイルを割り当てます。パスワードはTT_STRONG_VERIFY_FUNCTION関数の要件を満たしています。ユーザーが正常に作成されます。
Command> CREATE USER sampleuser_pw2
IDENTIFIED BY "!ddFF6C2?" PROFILE myprofile_pw2;
User created.PASSWORD_COMPLEXITY_CHECKERに対するTT_STIG_VERIFY_FUNCTIONの指定
この例では、myprofile_pw3プロファイルを作成して、PASSWORD_COMPLEXITY_CHECKERパスワード・パラメータにTT_STIG_VERIFY_FUNCTIONを指定します。その後で、sampleuser_pw3ユーザーを作成し、このユーザーにmyprofile_pw3プロファイルを割り当てます。パスワードはTT_STIG_VERIFY_FUNCTION関数の要件を満たします。TT_STIG_VERIFY_FUNCTION関数の詳細は、「TT_STIG_VERIFY_FUNCTION」を参照してください。
Command> CREATE PROFILE myprofile_pw3 LIMIT
PASSWORD_COMPLEXITY_CHECKER TT_STIG_VERIFY_FUNCTION;
Profile created.sampleuser_pw3ユーザーを作成して、このユーザーにmyprofile_pw3プロファイルを割り当てます。パスワードはTT_STIG_VERIFY_FUNCTION関数の要件を満たします。ユーザーが正常に作成されます。
Command> CREATE USER sampleuser_pw3
IDENTIFIED BY "!ddBBKKUYT165>m" PROFILE myprofile_pw3;
User created.SYSTEMとDEFAULTのPASSWORD_COMPLEXITY_CHECKER値の変更
この例では、dba_profilesシステム・ビューを問い合せて、SYSTEMプロファイルとDEFAULTプロファイルのPASSWORD_COMPLEXITY_CHECKERパスワード・パラメータの値を確認します。デフォルトでは、この値はNULLです。
Command> SELECT * FROM dba_profiles WHERE
resource_name='PASSWORD_COMPLEXITY_CHECKER' AND
profile IN ('DEFAULT','SYSTEM');
< DEFAULT, PASSWORD_COMPLEXITY_CHECKER, PASSWORD, NULL >
< SYSTEM, PASSWORD_COMPLEXITY_CHECKER, PASSWORD, NULL >
2 rows found.SYSTEMプロファイルのPASSWORD_COMPLEXITY_CHECKERパスワード・パラメータを変更してみます。このパスワード・パラメータは変更できないため、エラーが発生します。
Command> ALTER PROFILE SYSTEM LIMIT
PASSWORD_COMPLEXITY_CHECKER TT_STRONG_VERIFY_FUNCTION;
15176: Profile SYSTEM cannot be altered
The command failed.DEFAULTプロファイルのPASSWORD_COMPLEXITY_CHECKERパスワード・パラメータを変更してみます。この変更は成功します。DEFAULTプロファイルが割り当てられているユーザー(特定のプロファイルが割り当てられていないユーザー)には、TT_STRONG_VERIFY_FUNCTION関数のパスワード検証要件を満たしているパスワードの指定が必要です。
Command> ALTER PROFILE "DEFAULT" LIMIT
PASSWORD_COMPLEXITY_CHECKER TT_STRONG_VERIFY_FUNCTION;
Profile altereddba_profilesビューを問い合せて、DEFAULTプロファイルにTT_STRONG_VERIFY_FUNCTIONが割り当てられていることを確認します。
Command> SELECT * FROM dba_profiles WHERE
resource_name='PASSWORD_COMPLEXITY_CHECKER' AND
profile = 'DEFAULT';
< DEFAULT, PASSWORD_COMPLEXITY_CHECKER, PASSWORD, TT_STRONG_VERIFY_FUNCTION >
1 row found.プロファイルの作成と無効なパスワード複雑度チェッカ関数の指定の試行
この例では、PASSWORD_COMPLEXITY_CHECKER句に対して無効なパスワード複雑度チェッカ関数を指定しています。この関数がSYSスキーマに存在していても、指定可能なパスワード複雑度チェッカ関数はサポートされている3つのいずれかのみであるため、エラーが発生します。
Command> CREATE PROFILE myprofile1 LIMIT
PASSWORD_COMPLEXITY_CHECKER TT_COMPLEXITY_CHECK;
8529: Invalid password complexity checker function TT_COMPLEXITY_CHECK
The command failed.プロファイルの作成とパスワード・パラメータの制限の設定
この例では、profile1プロファイルを作成して、パスワード・パラメータに様々な制限を設定します。その次に、dba_profilesシステム・ビューを問い合せて制限を確認します。
Command> CREATE PROFILE profile1 LIMIT
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LIFE_TIME 60
PASSWORD_REUSE_TIME 60
PASSWORD_REUSE_MAX 5
PASSWORD_LOCK_TIME 1
PASSWORD_GRACE_TIME 10;
Profile created.dba_profilesシステム・ビューを問い合せて制限を確認します。PASSWORD_COMPLEXITY_CHECKERパスワード・パラメータがCREATE PROFILE文で指定されていないため、PASSWORD_COMPLEXITY_CHECKERの値がDEFAULTになっている点に注目してください(この値は、DEFAULTプロファイルから得られた値です)。
Command> SELECT * FROM dba_profiles WHERE profile = 'PROFILE1' AND
resource_type='PASSWORD';
< PROFILE1, FAILED_LOGIN_ATTEMPTS, PASSWORD, 5 >
< PROFILE1, PASSWORD_LIFE_TIME, PASSWORD, 60 >
< PROFILE1, PASSWORD_REUSE_TIME, PASSWORD, 60 >
< PROFILE1, PASSWORD_REUSE_MAX, PASSWORD, 5 >
< PROFILE1, PASSWORD_COMPLEXITY_CHECKER, PASSWORD, DEFAULT >
< PROFILE1, PASSWORD_LOCK_TIME, PASSWORD, 1 >
< PROFILE1, PASSWORD_GRACE_TIME, PASSWORD, 10 >
7 rows found.プロファイルの作成とFAILED_LOGIN_ATTEMPTSの指定
この例では、profile2プロファイルを作成して、FAILED_LOGIN_ATTEMPTSに1の値を指定します。その次に、user2ユーザーを作成して、user2にprofile2プロファイルを割り当てます。user2ユーザーはデータベースに接続しようとしますが、無効なパスワードを指定します。接続に失敗します。その5分後に、user2ユーザーはデータベースに再度接続しようとします。PASSWORD_LOCK_TIMEの値が0.0034722222222222 (5分)のため、接続に成功します(この値は、DEFAULTプロファイルで指定されています)。
Command> CREATE PROFILE profile2 LIMIT FAILED_LOGIN_ATTEMPTS 1; Profile created. Command> CREATE USER user2 IDENTIFIED BY user2 PROFILE profile2; User created.
user2にadmin権限を付与します。
Command> GRANT ADMIN TO user2;
データベースに接続してみます。接続文字列で無効なパスワードを指定したため、接続に失敗します。
Command> connect adding "UID=user2;PWD=user3" as user2; 7001: User authentication failed The command failed.
接続文字列で正しいパスワードを指定して、再度接続してみます。次の理由で接続に失敗します。
-
前に接続しようとして1回失敗していること
-
5分間のパスワード・ロック時間が経過する前に、データベースに接続しようとしたこと
none: Command> use database1 database1: Command> connect adding "UID=user2;PWD=user2" as user2; 15179: the account is locked The command failed.
5分後に、データベースに再度接続してみます。接続が成功します。
none: Command> use database1 database1: Command> connect adding "UID=user2;PWD=user2" as user2; Connection successful: DSN=database1;UID=user2;DataStore=/scratch/database1; DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;PermSize=128; (Default setting AutoCommit=1)
DEFAULTプロファイルのパスワード・パラメータ値の調査
この例では、dba_profilesシステム・ビューを問い合せて、DEFAULTプロファイルのパスワード・パラメータ値を確認します。
Command> SELECT * FROM dba_profiles WHERE profile = 'DEFAULT' AND
resource_type='PASSWORD';
< DEFAULT, FAILED_LOGIN_ATTEMPTS, PASSWORD, 10 >
< DEFAULT, PASSWORD_LIFE_TIME, PASSWORD, UNLIMITED >
< DEFAULT, PASSWORD_REUSE_TIME, PASSWORD, UNLIMITED >
< DEFAULT, PASSWORD_REUSE_MAX, PASSWORD, UNLIMITED >
< DEFAULT, PASSWORD_COMPLEXITY_CHECKER, PASSWORD, NULL >
< DEFAULT, PASSWORD_LOCK_TIME, PASSWORD, .0034 >
< DEFAULT, PASSWORD_GRACE_TIME, PASSWORD, UNLIMITED >
7 rows found.PASSWORD_LIFE_TIMEとPASSWORD_GRACE_TIMEの指定
この例では、profile4プロファイルを作成して、PASSWORD_LIFE_TIMEパスワード・パラメータに0.0034722222222222 (5分)の値を指定し、PASSWORD_GRACE_TIMEパスワード・パラメータに0.01041667 (15分)の値を指定します。その次に、user4ユーザーを作成して、user4にprofile4プロファイルを割り当てます。この例では、user4として継続してデータベースへの接続を試行します。
Command> CREATE PROFILE profile4 LIMIT
PASSWORD_LIFE_TIME 0.0034722222222222
PASSWORD_GRACE_TIME 0.01041667;
Profile created.dba_profilesシステム・ビューを問い合せて、パスワード・パラメータの値を確認します。
Command> SELECT * FROM dba_profiles WHERE profile = 'PROFILE4' AND
resource_type='PASSWORD';
< PROFILE2, FAILED_LOGIN_ATTEMPTS, PASSWORD, DEFAULT >
< PROFILE2, PASSWORD_LIFE_TIME, PASSWORD, .0034 >
< PROFILE2, PASSWORD_REUSE_TIME, PASSWORD, DEFAULT >
< PROFILE2, PASSWORD_REUSE_MAX, PASSWORD, DEFAULT >
< PROFILE2, PASSWORD_COMPLEXITY_CHECKER, PASSWORD, DEFAULT >
< PROFILE2, PASSWORD_LOCK_TIME, PASSWORD, DEFAULT >
< PROFILE2, PASSWORD_GRACE_TIME, PASSWORD, .0104 >
7 rows found.user4ユーザーを作成して、user4にprofile4プロファイルを割り当てます。user4にCONNECT権限を付与します。
Command> CREATE USER user4 IDENTIFIED BY user4 PROFILE profile4; User created. Command> GRANT CONNECT TO user4;
user4としてデータベースに接続します。接続が成功します。
Command> connect adding "UID=user4;PWD=user4" as user4; Connection successful: DSN=access1;UID=user4;DataStore=/scratch/database1; DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;PermSize=128; (Default setting AutoCommit=1)
データベースからの切断5分後に、user4としてデータベースに再接続します。接続は成功しますが、警告が発行されます。パスワードの有効期間は5分で、パスワードの猶予期間は15分です。
user4: Command> disconnect user4; Disconnecting from user4... none: Command> use database1 database1: Command> connect adding "UID=user4;PWD=user4" as user4; Warning 15182: Password will expire within 0.010417 days Connection successful: DSN=access1;UID=user4;DataStore=/scratch/database1; DatabaseCharacterSet=AL32UTF8;ConnectionCharacterSet=AL32UTF8;PermSize=128; (Default setting AutoCommit=1)
データベースからの切断15分後に、user4としてデータベースに再接続します。15分間のパスワード猶予期間が終了しているため、接続に失敗します。
user4: Command> disconnect user4; Disconnecting from user4... none: Command> use database1 database1: Command> connect adding "UID=user4;PWD=user4" as user4; 15180: the password has expired The command failed.
LIMITキーワードのみを指定したプロファイルの作成
この例では、profile5プロファイルを作成して、LIMITキーワードのみを指定します。その次に、dba_profilesシステム・ビューを問い合せて、profile5プロファイルのパスワード・パラメータ制限がすべてDEFAULTの値に設定されていることを確認します。
Command> CREATE PROFILE profile5 LIMIT;
Profile created.
Command> SELECT * FROM dba_profiles WHERE profile = 'PROFILE5' AND
resource_type='PASSWORD
< PROFILE5, FAILED_LOGIN_ATTEMPTS, PASSWORD, DEFAULT >
< PROFILE5, PASSWORD_LIFE_TIME, PASSWORD, DEFAULT >
< PROFILE5, PASSWORD_REUSE_TIME, PASSWORD, DEFAULT >
< PROFILE5, PASSWORD_REUSE_MAX, PASSWORD, DEFAULT >
< PROFILE5, PASSWORD_COMPLEXITY_CHECKER, PASSWORD, DEFAULT >
< PROFILE5, PASSWORD_LOCK_TIME, PASSWORD, DEFAULT >
< PROFILE5, PASSWORD_GRACE_TIME, PASSWORD, DEFAULT >
7 rows found.PASSWORD_REUSE_TIMEに対するUNLIMITEDの指定
この例では、profile6プロファイルを作成して、UNLIMITEDのPASSWORD_REUSE_TIMEを指定します。パスワードは再利用できません。
Command> CREATE PROFILE profile6 LIMIT
PASSWORD_REUSE_MAX 2
PASSWORD_REUSE_TIME UNLIMITED;
Profile created.user6ユーザーを作成して、user6にprofile6プロファイルを割り当てます。user6のパスワードを2回変更します。user6のパスワードを再利用してみます。これは、PASSWORD_REUSE_TIME値がUNLIMITEDのために失敗します。
Command> CREATE USER user6 IDENTIFIED BY user6 PROFILE profile6; User created. Command> ALTER USER user6 IDENTIFIED BY user6_test1; User altered. Command> ALTER USER user6 IDENTIFIED BY user6_test2; User altered. Command> ALTER USER user6 IDENTIFIED BY user6; 15183: Password cannot be reused The command failed.
PASSWORD_REUSE_TIMEに対するDEFAULTの指定
この例では、PASSWORD_REUSE_TIMEパスワード・パラメータにDEFAULT、PASSWORD_REUSE_MAXパスワード・パラメータに3の値を指定して、profile7プロファイルを作成します。TimesTenにより、PASSWORD_REUSE_TIMEパスワード・パラメータに、DEFAULTプロファイルの値が使用されます。
Command> CREATE PROFILE profile7 LIMIT
PASSWORD_REUSE_TIME DEFAULT
PASSWORD_REUSE_MAX 3;
Profile created.dba_profilesシステム・ビューを問い合せて、profile7プロファイルのパスワード・パラメータの値を確認します。PASSWORD_REUSE_TIMEに対するDEFAULTの値と、PASSWORD_REUSE_MAXに対する3の値に注目してください(boldで表示)。
Command> SELECT * FROM dba_profiles WHERE profile = 'PROFILE7' AND
resource_type = 'PASSWORD';
< PROFILE7, FAILED_LOGIN_ATTEMPTS, PASSWORD, DEFAULT >
< PROFILE7, PASSWORD_LIFE_TIME, PASSWORD, DEFAULT >
< PROFILE7, PASSWORD_REUSE_TIME, PASSWORD, DEFAULT >
< PROFILE7, PASSWORD_REUSE_MAX, PASSWORD, 3 >
< PROFILE7, PASSWORD_COMPLEXITY_CHECKER, PASSWORD, DEFAULT >
< PROFILE7, PASSWORD_LOCK_TIME, PASSWORD, DEFAULT >
< PROFILE7, PASSWORD_GRACE_TIME, PASSWORD, DEFAULT >
7 rows found.dba_profilesシステム・ビューを問い合せて、DEFAULTプロファイルのパスワード・パラメータの値を確認します。PASSWORD_REUSE_TIMEに対するUNLIMITEDの値に注目してください(boldで表示)。
Command> SELECT * FROM dba_profiles WHERE profile = 'DEFAULT' AND
resource_type = 'PASSWORD';
< DEFAULT, FAILED_LOGIN_ATTEMPTS, PASSWORD, 10 >
< DEFAULT, PASSWORD_LIFE_TIME, PASSWORD, UNLIMITED >
< DEFAULT, PASSWORD_REUSE_TIME, PASSWORD, UNLIMITED >
< DEFAULT, PASSWORD_REUSE_MAX, PASSWORD, UNLIMITED >
< DEFAULT, PASSWORD_COMPLEXITY_CHECKER, PASSWORD, NULL >
< DEFAULT, PASSWORD_LOCK_TIME, PASSWORD, .0034 >
< DEFAULT, PASSWORD_GRACE_TIME, PASSWORD, UNLIMITED >
7 rows found.user7ユーザーを作成して、user7にprofile7プロファイルを割り当てます。user7のパスワードを3回変更します。PASSWORD_REUSE_TIMEパラメータのUNLIMITEDの値が原因で、user7のパスワードは再利用できません。
Command> CREATE USER user7 IDENTIFIED BY user7 PROFILE profile7; User created. Command> ALTER USER user7 IDENTIFIED BY user7_test1; User altered. Command> ALTER USER user7 IDENTIFIED BY user7_test2; User altered. Command> ALTER USER user7 IDENTIFIED BY user_test3; User altered. Command> ALTER USER user7 IDENTIFIED BY user7; 15183: Password cannot be reused The command failed.
PASSWORD_REUSE_TIMEとPASSWORD_REUSE_MAXの指定
この例では、PASSWORD_REUSE_TIMEパスワード・パラメータに0.0020833 (約2分)の値を指定し、PASSWORD_REUSE_MAXパスワード・パラメータに2の値を指定して、profile8プロファイルを作成します。その次に、user8ユーザーを作成して、user8にprofile8プロファイルを割り当てます。user8パスワードを2分以内に2回変更します。その後、2分以内に、user8の元のパスワード(user8_pwd)を再利用します。ALTER USER操作が失敗します。パスワードを2回変更しても、元のパスワードは0.00208333日(約2分)後にのみ再利用できるようになります。2分後に、user8の元のパスワード(user8_pwd)を再利用します。ALTER USER操作が成功します。ユーザーのパスワードが2回変更されていて、2分以上経過しています。
Command> CREATE PROFILE profile8 LIMIT
PASSWORD_REUSE_TIME 0.00208333
PASSWORD_REUSE_MAX 2;
Profile created.user8ユーザーを作成して、user8にprofile8プロファイルを割り当てます。
Command> CREATE USER user8 IDENTIFIED BY user8_pwd PROFILE profile8; User created.
すぐにユーザーを変更して、パスワードを2回変更します。
Command> ALTER USER user8 IDENTIFIED BY user8_test1; User altered. Command> ALTER USER user8 IDENTIFIED BY user8_test2; User altered.
2分以内に、user8_pwdの元のパスワード(boldで表示)を再利用してみます。元のパスワードは2分後にのみ再利用できるため、ALTER USER操作は失敗します。
Command> ALTER USER user8 IDENTIFIED BY user8_pwd;
15183: Password cannot be reused
The command failed.2分後に、user8_pwdの元のパスワード(boldで表示)を再利用してみます。ALTER USER操作が成功します。パスワードが2回変更されていて、2分経過しているため、元のパスワードが再利用できるようになります。
Command> ALTER USER user8 IDENTIFIED BY user8_pwd;
User altered.