CREATE PROFILE を使用して、データベースアカウントに適用可能なパスワードおよびログインのセキュリティルールを名前付きで定義します。
構文
CREATE PROFILE profile_name
[LIMIT {parameter value} ... ];PolarDB for PostgreSQL (Compatible with Oracle) が適用するルールを指定するには、1 つ以上のスペース区切りのパラメーターと値のペアとともに LIMIT 句を使用します。
パラメーター
| パラメーター | 説明 |
|---|---|
profile_name | プロファイルの名前です。 |
parameter | プロファイルが制限する属性です。 |
value | パラメーターに適用される制限値です。 |
サポートされるパラメーター
FAILED_LOGIN_ATTEMPTS
サーバーがアカウントをロックするまでの連続したログイン失敗回数を指定します。
サポートされる値:
0 より大きい INTEGER 値。
DEFAULT— DEFAULT プロファイルのFAILED_LOGIN_ATTEMPTSの値を使用します。UNLIMITED— ログイン失敗回数に制限を設けません。
PASSWORD_LOCK_TIME
FAILED_LOGIN_ATTEMPTS の上限を超えた後にアカウントがロックされたままとなる期間を指定します。
サポートされる値:
0 以上である NUMERIC 値。小数を使用して日数の一部を表します(例:
4.5は 4 日 12 時間を意味します)。DEFAULT— DEFAULT プロファイルのPASSWORD_LOCK_TIMEの値を使用します。UNLIMITED— アカウントはデータベーススーパーユーザが手動でロック解除するまでロックされたままになります。
PASSWORD_LIFE_TIME
ユーザーが新しいパスワードを設定する必要があるまでのパスワード使用可能日数を指定します。
PASSWORD_LIFE_TIME を設定する場合は、PASSWORD_GRACE_TIME を使用して有効期限後の猶予期間を定義してください。PASSWORD_GRACE_TIME が指定されていない場合、デフォルトの猶予期間が適用され、ユーザーがパスワードを変更するまでアカウントはいかなる文も実行できなくなります。
サポートされる値:
0 以上である NUMERIC 値。小数を使用して日数の一部を表します。
DEFAULT— DEFAULT プロファイルのPASSWORD_LIFE_TIMEの値を使用します。UNLIMITED— パスワードは有効期限切れになりません。
PASSWORD_GRACE_TIME
パスワードの有効期限切れから強制的なパスワード変更までの日数を指定します。猶予期間中、ユーザーは接続できますが、パスワードを更新するまで文を実行できません。
サポートされる値:
0 以上である NUMERIC 値。小数を使用して日数の一部を表します。
DEFAULT— DEFAULT プロファイルのPASSWORD_GRACE_TIMEの値を使用します。UNLIMITED— 猶予期間は終了しません。
PASSWORD_REUSE_TIME
パスワードを再利用できるようになるまでに経過しなければならない最小日数を指定します。
PASSWORD_REUSE_TIME および PASSWORD_REUSE_MAX は連携して動作します。
いずれか一方のパラメーターが有限値で、もう一方が
UNLIMITEDの場合、古いパスワードは再利用できません。両方が
UNLIMITEDの場合、パスワードは制限なく再利用できます。
サポートされる値:
0 以上である NUMERIC 値。小数を使用して日数の一部を表します。
DEFAULT— DEFAULT プロファイルのPASSWORD_REUSE_TIMEの値を使用します。UNLIMITED— パスワードは制限なく再利用できます。
PASSWORD_REUSE_MAX
パスワードを再利用できるようになるまでに必要な最小パスワード変更回数を指定します。これらの 2 つのパラメーターの連携方法については、PASSWORD_REUSE_TIME をご参照ください。
サポートされる値:
0 以上である INTEGER 値。
DEFAULT— DEFAULT プロファイルのPASSWORD_REUSE_MAXの値を使用します。UNLIMITED— パスワードは制限なく再利用できます。
PASSWORD_VERIFY_FUNCTION
新しいパスワードを受け入れる前にパスワードの複雑さを検証する PL/SQL 関数を指定します。
サポートされる値:
PL/SQL 関数の名前。
DEFAULT— DEFAULT プロファイルで指定された関数を使用します。NULL
PASSWORD_ALLOW_HASHED
サーバーが事前にハッシュ化された(クライアント側で暗号化された)パスワードを受け入れるかどうかを指定します。
TRUE— クライアントが送信したハッシュ計算済みのパスワードを受け入れます。FALSE— 平文形式のパスワードを要求します。サーバーがハッシュ化されたパスワードを受信した場合、エラーを返します。
サポートされる値:
ブール値:
TRUE、ON、YES、1、FALSE、OFF、NO、または0。DEFAULT— DEFAULT プロファイルのPASSWORD_ALLOW_HASHEDの値を使用します。
PASSWORD_ALLOW_HASHED は Oracle と互換性がありません。
使用例
ログイン失敗が繰り返された場合にアカウントをロックする
次のプロファイルは、連続 5 回のログイン失敗後にアカウントを 1 日間ロックします。
CREATE PROFILE acctg LIMIT
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LOCK_TIME 1;定期的なパスワード変更を要求する
次のプロファイルは、ユーザーが 90 日ごとにパスワードを変更することを要求し、3 日間の猶予期間を設けます。
CREATE PROFILE sales LIMIT
PASSWORD_LIFE_TIME 90
PASSWORD_GRACE_TIME 3;90 日の期間が経過すると、ユーザーは次回のログイン時にエラーが表示されますが、3 日間の猶予期間中は引き続き接続できます。猶予期間が終了すると、ユーザーが新しいパスワードを設定するまでアカウントはいかなる文も実行できなくなります。
パスワードの再利用を制限する
次のプロファイルは、ユーザーが 180 日以内に同じパスワードを再利用できないようにし、かつ過去のパスワードを再利用する前に少なくとも 5 回のパスワード変更を要求します。
CREATE PROFILE accts LIMIT
PASSWORD_REUSE_TIME 180
PASSWORD_REUSE_MAX 5;パスワードの複雑さを強制する
次のプロファイルは、ユーザー定義関数 password_rules を呼び出して、新しいパスワードが複雑さ要件を満たしているかどうかを検証します。
CREATE PROFILE resources LIMIT
PASSWORD_VERIFY_FUNCTION password_rules;関連する文
プロファイルを削除するには、DROP PROFILE を使用します。