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

パラメータ

パラメータ 説明

profile

プロファイルの名前。

LIMIT password_parameters

LIMIT句では、パスワード・パラメータの制限を設定します。LIMITキーワードは必須です。

パスワード・パラメータは、パスワード・パラメータの名前とパスワード・パラメータの値(または制限)で構成されます。これには、パスワード複雑度チェッカ関数が含まれます。すべてのパラメータ(FAILED_LOGIN_ATTEMPTSPASSWORD_REUSE_MAXを除く)では、時間の長さを設定します。この長さは日数として解釈されます。小数値を使用できます(たとえば、約1時間を意味するために.0833を使用できます)。最小値は1秒です。最大値は106,751,991日です。定数値は日数で表す必要があります。たとえば、5分の値を設定するには、定数値の0.0034722222222222 (5/1440日)を指定します。FAILED_LOGIN_ATTEMPTSPASSWORD_REUSE_MAXには、整数を指定する必要があります。

LIMIT句の後にパスワード・パラメータを指定しないと、そのパスワード・パラメータの制限は、DEFAULTプロファイルで定義した制限に基づくようになります。また、追加のパラメータなしでLIMITキーワードのみを指定すると、プロファイルの制限はDEFAULTプロファイルの制限に基づくようになります。

FAILED_LOGIN_ATTEMPTS

ユーザーのアカウントがロックされるまでの、ユーザーによるデータベースへの接続試行の連続失敗回数を指定します。

PASSWORD_LIFE_TIME

ユーザーが認証に同じパスワードを使用できる日数を指定します。PASSWORD_GRACE_TIMEの値も設定すると、猶予期間内にパスワードが変更されない場合に、パスワードが期限切れになります。このような状況になると、その後のデータベースへの接続は拒否されます。

PASSWORD_REUSE_TIMEおよびPASSWORD_REUSE_MAX

これら2つのパラメータは、同時に使用する必要があります。

  • PASSWORD_REUSE_TIMEでは、ユーザーがパスワードを再利用できるようになるまでの経過日数を指定します。たとえば、30の値を指定した場合、ユーザーは、以前のパスワードを30日後に再利用できるようになります。

  • PASSWORD_REUSE_MAXでは、現行のパスワードが再利用できるようになるまでに必要なパスワードの変更回数を指定します。

これらのパラメータを有効にするには、その両方に値を指定する必要があります。具体的には、次のようになります:

  • 両方のパラメータに値を指定した場合: PASSWORD_REUSE_TIMEに指定した日数の間に、PASSWORD_REUSE_MAXに指定した回数になるまでパスワードを変更していないと、ユーザーはパスワードを再利用できません。たとえば、PASSWORD_REUSE_TIME30の値を指定し、PASSWORD_REUSE_MAX10の値を指定した場合、ユーザーはパスワードを10回変更していれば、30日後にパスワードを再利用できます。

  • どちらかのパラメータに値を指定して、もう一方のパラメータにUNLIMITEDの値を指定すると、ユーザーはパスワードを再利用できなくなります。

  • 両方のパラメータにUNLIMITEDの値を指定すると、TimesTenは両方の値を無視します。つまり、パスワードが再利用できることを意味します。

PASSWORD_LOCK_TIME

指定した回数連続して接続に失敗した後に、ユーザー・アカウントがロックされる日数を指定します。

PASSWORD_GRACE_TIME

猶予期間の開始後の日数を指定します。この間は、TimesTenが警告を示しますが、データベースへの接続は許可されます。猶予期間中にパスワードが変更されないと、そのパスワードは期限切れになります。このパラメータは、PASSWORD_LIFE_TIMEパラメータに関連付けられます。

UNLIMITED

パスワード・パラメータに制限がないことを示します。UNLIMITEDを指定した場合は、パスワード・パラメータに従うことになります。たとえば、FAILED_LOGIN_ATTEMPTS UNLIMITED

DEFAULT

このプロファイルのパスワード・パラメータに対する制限を省略することを示します。このプロファイルが割り当てられているユーザーは、このパスワード・パラメータのDEFAULTプロファイルで定義された制限を受けます。

DEFAULTを指定した場合は、パスワード・パラメータに従うことになります。たとえば、FAILED_LOGIN_ATTEMPTS DEFAULT

constant

UNLIMITEDまたはDEFAULTを指定していない場合のパスワード・パラメータの値を示します。指定した場合は、パスワード・パラメータに従うことになります。たとえば、FAILED_LOGIN_ATTEMPTS 3

{PASSWORD_COMPLEXITY_CHECKER| PASSWORD_VERIFY_FUNCTION} {function|NULL|DEFAULT}

パスワードに対するパスワード検証を実行するかどうかを示します。実行する場合は、検証に使用する関数を指定します。PASSWORD_COMPLEXITY_CHECKERまたはPASSWORD_VERIFY_FUNCTIONのどちらかのパスワード・パラメータを指定できます。これらは同じものです。

functionは、サポートされている3つのパスワード複雑度チェッカ関数のいずれかを示します。TimesTenにパスワード検証を実行するように指示するには、これらの関数のいずれかを指定します。有効な値は次のとおりです:
  • TT_VERIFY_FUNCTION
  • TT_STRONG_VERIFY_FUNCTION
  • TT_STIG_VERIFY_FUNCTION

NULLは、プロファイルに割り当てられたパスワード検証関数が存在しないことを示します。

DEFAULTは、ユーザーがDEFAULTプロファイルで定義された制限を受けることを示します。DEFAULTプロファイルの初期の値はNULLです。

PASSWORD_COMPLEXITY_CHECKERパスワード・パラメータを指定しない場合、その値はDEFAULTプロファイルに定義されている制限にデフォルト設定されます。

説明

  • ALTER PROFILE文は、以前に作成したプロファイルを変更するために使用します。プロファイルの作成の詳細は、「CREATE PROFILE」を参照してください。

  • ALTER PROFILE文を使用した変更は、その影響を受けるユーザーが次回データベースに接続したときに有効になります。例外は、PASSWORD_COMPLEXITY_CHECKERパスワード・パラメータを変更した場合です。パスワード検証は、新規に作成されたパスワード(CREATE USERまたはALTER USER文のIDENTIFIED BY句で指定されたパスワード)に対してのみ実行されます。そのため、ユーザーは古いパスワードでデータベースに接続できます。例については、「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システム・ビューを問い合せて、user1DEFAULTプロファイルが割り当てられていることを確認します。

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_ATTEMPTSPASSWORD_LIFE_TIMEPASSWORD_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.