ALTER PROFILE
ALTER PROFILE文では、プロファイル内の1つ以上のパスワード・パラメータを追加、変更または削除します。
必要な権限
ADMIN
TimesTen Scaleoutでの使用
この文は、TimesTen Scaleoutでサポートされています。
SQL構文
ALTER 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にパスワード検証を実行するように指示するには、これらの関数のいずれかを指定します。有効な値は次のとおりです:
|
説明
-
ALTERPROFILE文は、以前に作成したプロファイルを変更するために使用します。プロファイルの作成の詳細は、「CREATE PROFILE」を参照してください。 -
ALTERPROFILE文を使用した変更は、その影響を受けるユーザーが次回データベースに接続したときに有効になります。例外は、PASSWORD_COMPLEXITY_CHECKERパスワード・パラメータを変更した場合です。パスワード検証は、新規に作成されたパスワード(CREATEUSERまたはALTERUSER文のIDENTIFIEDBY句で指定されたパスワード)に対してのみ実行されます。そのため、ユーザーは古いパスワードでデータベースに接続できます。例については、「PASSWORD_COMPLEXITY_CHECKERパスワード・パラメータの変更」を参照してください。 -
DEFAULTプロファイルは変更できます。ただし、DEFAULTプロファイルは削除できません。DEFAULTプロファイルの変更例は、「DEFAULTプロファイルの変更」を参照してください。 -
SYSTEMプロファイルのパスワード・パラメータは変更できません。このプロファイルはインスタンス管理者を含むシステム・ユーザーに割り当てられます。 - プロファイルを変更して、そのプロファイルが割り当てられているユーザーのパスワードに対して実行するパスワード検証を変更できます。パスワード検証およびパスワード複雑度チェッカ検証関数の詳細は、「パスワード複雑度チェッカの検証について」を参照してください。
例
PASSWORD_COMPLEXITY_CHECKERパスワード・パラメータの変更
この例では、myprofile_alterpw1プロファイルを作成して、PASSWORD_COMPLEXITY_CHECKERパスワード・パラメータにTT_VERIFY_FUNCTIONを指定します。その後で、sampleuser_alterpw1ユーザーを作成して、sampleuser_alterpw1ユーザーにmyprofile_alterpw1プロファイルを割り当てます。この例では、プロファイルを変更して、PASSWORD_COMPLEXITY_CHECKERパスワード・パラメータにTT_STIG_VERIFY_FUNCTIONを指定します。sampleuser_alterpw1は、元のパスワードでデータベースに接続しようとします。その接続に成功します。TimesTenは古いパスワードに対するパスワード検証を実行しません。その後で、ALTER USER文を使用して、TT_STIG_VERIFY_FUNCTIONの要件を満たすようにsampleuser_alterpw1のユーザー・パスワードを変更しています。ALTER USER文が成功して、ユーザーのパスワードが変更されています。
Command> CREATE PROFILE myprofile_alterpw1 LIMIT
PASSWORD_COMPLEXITY_CHECKER TT_VERIFY_FUNCTION;
Profile created.
Command> CREATE USER sampleuser_alterpw1
IDENTIFIED BY "%aabb2L90" PROFILE myprofile_alterpw1;
User created.myprofile_alterpw1プロファイルを変更することで、PASSWORD_COMPLEXITY_CHECKERの値をTT_STIG_VERIFY_FUNCTIONに変更します。sampleuser_alterpw1ユーザーとして、データベースに接続します。接続が成功します。
Command> ALTER PROFILE myprofile_alterpw1 LIMIT
PASSWORD_COMPLEXITY_CHECKER TT_STIG_VERIFY_FUNCTION;
Profile altered.
Command> GRANT CONNECT TO sampleuser_alterpw1;
Command> connect adding "UID=sampleuser_alterpw1;PWD=%aabb2L90" as sampleuser;
Connection successful: DSN=access1;UID=sampleuser_alterpw1;
DataStore=/scratch/sampleuser/mydatabase1;DatabaseCharacterSet=AL32UTF8;
ConnectionCharacterSet=AL32UTF8;PermSize=128;
(Default setting AutoCommit=1)
同じパスワードを指定して、sampleuser_alterpw1ユーザーを変更します。ALTER USER文は失敗します。新しく作成したパスワードは、TT_STIG_VERIFY_FUNCTION関数の要件を満たしていません。TT_STIG_VERIFY_FUNCTION関数の要件を満たすパスワードを指定して、sampleuser_alterpw1を再度変更します。ALTER USER文は成功します。TT_STIG_VERIFY_FUNCTION関数の詳細は、「TT_STIG_VERIFY_FUNCTION」を参照してください。
Command> ALTER USER sampleuser_alterpw1
IDENTIFIED BY "%aabb2L90";
15186: Password complexity check for the specified password failed
15188: TT-20001: Password length less than 15
The command failed.
Command> ALTER USER sampleuser_alterpw1
IDENTIFIED BY "%aabb2L##mf5Fn!";
User altered.DEFAULTプロファイルの変更
この例では、DEFAULTプロファイルのパスワード・パラメータの値を検証します。その次に、プロファイルを別の値に変更します。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.
user1ユーザーを作成しますが、プロファイルは指定しません。User1に、DEFAULTプロファイルが割り当てられます。ALTER PROFILE文を使用して、DEFAULTプロファイルのFAILED_LOGIN_ATTEMPTSパスワード・パラメータの値を5に、PASSWORD_LOCK_TIMEパスワード・パラメータの値を1に変更します。DEFAULTは予約語なので、DEFAULTを二重引用符で囲みます。user1として、毎回間違ったパスワードを指定してデータベースに5回接続します。6回目の試行時に、user1アカウントがロックされます。
Command> CREATE USER user1 IDENTIFIED BY user1; User created. Command> GRANT CONNECT TO user1;
dba_usersシステム・ビューを問い合せて、user1にDEFAULTプロファイルが割り当てられていることを確認します。
Command> SELECT profile FROM dba_users WHERE username='USER1'; < DEFAULT > 1 row found.
ALTER PROFILE文を使用して、DEFAULTプロファイルを変更します。
Command> ALTER PROFILE "DEFAULT" LIMIT
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LOCK_TIME 1;
Profile altered.
dba_profilesシステム・ビューを問い合せて、値が変更されていることを確認します(boldで表示)。
Command> SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_type='PASSWORD'; < DEFAULT, FAILED_LOGIN_ATTEMPTS, PASSWORD, 5 > < 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, 1 > < DEFAULT, PASSWORD_GRACE_TIME, PASSWORD, UNLIMITED > 7 rows found.
user1として、データベースに接続してみます。間違ったパスワードを指定します。6回目の試行時に、user1アカウントがロックされます。
Command> connect adding "uid=user1;pwd=user1_test1" as user1; 7001: User authentication failed The command failed. none: Command> connect adding "uid=user1;pwd=user1_test2" as user1; 7001: User authentication failed The command failed. none: Command> connect adding "uid=user1;pwd=user1_test3" as user1; 7001: User authentication failed The command failed. none: Command> connect adding "uid=user1;pwd=user1_test4" as user1; 7001: User authentication failed The command failed. none: Command> connect adding "uid=user1;pwd=user1_test5" as user1; 7001: User authentication failed The command failed. none: Command> connect adding "uid=user1;pwd=user1_test6" as user1; 15179: the account is locked The command failed.
プロファイルの作成後のプロファイルの変更
この例では、profile1プロファイルを作成して、パスワード・パラメータFAILED_LOGIN_ATTEMPTS、PASSWORD_LIFE_TIME、PASSWORD_LOCK_TIMEおよびPASSWORD_GRACE_TIMEの値を指定します。その次に、profile1プロファイルを変更して、パスワード・パラメータPASSWORD_REUSE_TIMEおよびPASSWORD_REUSE_MAXを変更します。
Command> CREATE PROFILE profile1 LIMIT
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LIFE_TIME 90
PASSWORD_LOCK_TIME 30
PASSWORD_GRACE_TIME 10;
Profile created.
dba_profilesシステム・ビューを問い合せて、パスワード・パラメータの値を確認します。パスワード・パラメータPASSWORD_REUSE_TIMEおよびPASSWORD_REUSE_MAXの値は、どちらもDEFAULT (太字で表示)になっています。これらのパスワード・パラメータはCREATE PROFILE定義で指定されていないため、TimesTenは各パラメータにDEFAULTの値を割り当てます。これらのパラメータの値は、DEFAULTプロファイルの値から導出されます。
Command> SELECT * FROM dba_profiles WHERE profile = 'PROFILE1' AND
resource_type= 'PASSWORD';
< PROFILE1, FAILED_LOGIN_ATTEMPTS, PASSWORD, 3 >
< PROFILE1, PASSWORD_LIFE_TIME, PASSWORD, 90 >
< PROFILE1, PASSWORD_REUSE_TIME, PASSWORD, DEFAULT >
< PROFILE1, PASSWORD_REUSE_MAX, PASSWORD, DEFAULT >
< PROFILE1, PASSWORD_COMPLEXITY_CHECKER, PASSWORD, DEFAULT >
< PROFILE1, PASSWORD_LOCK_TIME, PASSWORD, 30 >
< PROFILE1, PASSWORD_GRACE_TIME, PASSWORD, 10 >
7 rows found.
profile1プロファイルを変更して、PASSWORD_REUSE_TIMEパスワードに20の値を指定し、PASSWORD_REUSE_MAXパスワード・パラメータに15の値を指定します(boldで表示)。このプロファイルが割り当てられているユーザーは、パスワードを15回変更していれば、20日後に同じパスワードを再利用できます。
Command> ALTER PROFILE profile1 LIMIT
PASSWORD_REUSE_TIME 20
PASSWORD_REUSE_MAX 15;
Profile altered.
dba_profilesシステム・ビューを問い合せて、パスワード・パラメータの値が変更されていることを確認します(boldで表示)。
Command> SELECT * FROM dba_profiles WHERE profile = 'PROFILE1' AND
resource_type= 'PASSWORD';
< PROFILE1, FAILED_LOGIN_ATTEMPTS, PASSWORD, 3 >
< PROFILE1, PASSWORD_LIFE_TIME, PASSWORD, 90 >
< PROFILE1, PASSWORD_REUSE_TIME, PASSWORD, 20 >
< PROFILE1, PASSWORD_REUSE_MAX, PASSWORD, 15 >
< PROFILE1, PASSWORD_COMPLEXITY_CHECKER, PASSWORD, DEFAULT >
< PROFILE1, PASSWORD_LOCK_TIME, PASSWORD, 30 >
< PROFILE1, PASSWORD_GRACE_TIME, PASSWORD, 10 >
7 rows found.