59.27 EDIT_USERプロシージャ

このプロシージャを使用すると、ユーザー・アカウント・レコードを変更できます。このプロシージャを実行するには、カレント・ユーザーにワークスペースでの管理権限が必要です。

構文

APEX_UTIL.EDIT_USER (
    p_user_id                      IN                   NUMBER,
    p_user_name                    IN                   VARCHAR2,
    p_first_name                   IN                   VARCHAR2    DEFAULT NULL,
    p_last_name                    IN                   VARCHAR2    DEFAULT NULL,
    p_web_password                 IN                   VARCHAR2    DEFAULT NULL,
    p_new_password                 IN                   VARCHAR2    DEFAULT NULL,
    p_email_address                IN                   VARCHAR2    DEFAULT NULL,
    p_start_date                   IN                   VARCHAR2    DEFAULT NULL,
    p_end_date                     IN                   VARCHAR2    DEFAULT NULL,
    p_employee_id                  IN                   VARCHAR2    DEFAULT NULL,
    p_allow_access_to_schemas      IN                   VARCHAR2    DEFAULT NULL,
    p_person_type                  IN                   VARCHAR2    DEFAULT NULL,
    p_default_schema               IN                   VARCHAR2    DEFAULT NULL,
    p_group_ids                    IN                   VARCHAR2    DEFAULT NULL,
    p_developer_roles              IN                   VARCHAR2    DEFAULT NULL,
    p_description                  IN                   VARCHAR2    DEFAULT NULL,
    p_account_expiry               IN                   DATE        DEFAULT NULL,
    p_account_locked               IN                   VARCHAR2    DEFAULT 'N',
    p_failed_access_attempts       IN                   NUMBER      DEFAULT 0,
    p_change_password_on_first_use IN                   VARCHAR2    DEFAULT 'Y',
    p_first_password_use_occurred  IN                   VARCHAR2    DEFAULT 'N');

パラメータ

パラメータ 説明
p_user_id ユーザー・アカウントの数値の主キー
p_user_name

ログインに使用する英数字の名前

「SET_USERNAMEプロシージャ」も参照してください

p_first_name

情報。

「SET_FIRST_NAMEプロシージャ」も参照してください

p_last_name

情報。

「SET_LAST_NAMEプロシージャ」も参照してください

p_web_password クリア・テキストのパスワード。このプロシージャを使用してユーザーのパスワードを更新する場合は、p_web_passwordおよびp_new_passwordの両方の値がNULLでなく、同一である必要があります。
p_new_password クリア・テキストの新しいパスワード。このプロシージャを使用してユーザーのパスワードを更新する場合は、p_web_passwordおよびp_new_passwordの両方の値がNULLでなく、同一である必要があります。
p_email_address

情報。

「SET_EMAILプロシージャ」も参照してください

p_start_date 未使用。
p_end_date 未使用。
p_employee_id 未使用。
p_allow_access_to_schemas ユーザーのワークスペースに割り当てられ、ユーザーによるアクセスが制限されているスキーマのリスト
p_person_type 未使用。
p_default_schema ユーザーのワークスペースに割り当てられ、参照用にデフォルトで使用されるデータベース・スキーマ。
p_group_ids コロンで区切られた数値のグループIDのリスト
p_developer_roles

コロンで区切られた開発者権限のリスト。このパラメータで使用可能な値は、次のとおりです。

  • null - ユーザーをエンド・ユーザー(開発済アプリケーションに対してのみ認証可能なユーザー)に更新する場合
  • CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL - 開発者権限を持つようにユーザーを更新する場合。
  • ADMIN:CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL - ワークスペース管理者および開発者の完全な権限を持つようにユーザーを更新する場合。

ノート: 現在このパラメータの名前は一貫しておらず、CREATE_USER、EDIT_USERおよびFETCH_USER APIと呼ばれています。ただし、これらのすべての名前が、指定されたユーザー・アカウント・レコードに格納されているDEVELOPER_ROLEフィールドに関連しています。CREATE_USERではp_developer_privs、EDIT_USERではp_developer_roles、FETCH_USERではp_developer_roleが使用されます。

「GET_USER_ROLESファンクション」も参照してください

p_description 情報。
p_account_expiry

パスワードが最後に更新された日。

p_account_locked

アカウントがロックされているかどうかを示す'Y'または'N'。

p_failed_access_attempts ログインに連続して失敗した回数。
p_change_password_on_first_use

パスワードを初めて使用するときに変更する必要があるかどうかを示す'Y'または'N'。

「CHANGE_PASSWORD_ON_FIRST_USEファンクション」も参照してください

p_first_password_use_occurred

パスワードの変更後にログインが行われたかどうかを示す'Y'または'N'。

「PASSWORD_FIRST_USE_OCCURREDファンクション」も参照してください

次の例に、EDIT_USERプロシージャを使用してユーザー・アカウントを更新する方法を示します。この例で示すのは、EDIT_USERプロシージャを使用して、ユーザーFRANKを、開発者権限のみを持つユーザーからワークスペース管理者権限および開発者権限を持つユーザーに変更する方法です。まず、FETCH_USERプロシージャをコールしてユーザーFRANKのアカウントの詳細をローカル変数に割り当てます。次に、これらのローカル変数をEDIT_USERへのコールに使用してアカウントの詳細を保存します。ただし、p_developer_rolesパラメータの値は除外されます。この値は'ADMIN:CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL'に設定されます。

DECLARE
    l_user_id                       NUMBER;
    l_workspace                     VARCHAR2(255);
    l_user_name                     VARCHAR2(100);
    l_first_name                    VARCHAR2(255);
    l_last_name                     VARCHAR2(255);
    l_web_password                  VARCHAR2(255);
    l_email_address                 VARCHAR2(240);
    l_start_date                    DATE;
    l_end_date                      DATE;
    l_employee_id                   NUMBER(15,0);
    l_allow_access_to_schemas       VARCHAR2(4000);
    l_person_type                   VARCHAR2(1);
    l_default_schema                VARCHAR2(30);
    l_groups                        VARCHAR2(1000);
    l_developer_role                VARCHAR2(60);
    l_description                   VARCHAR2(240);
    l_account_expiry                DATE;
    l_account_locked                VARCHAR2(1);
    l_failed_access_attempts        NUMBER;
    l_change_password_on_first_use  VARCHAR2(1);
    l_first_password_use_occurred   VARCHAR2(1);
BEGIN
    l_user_id := APEX_UTIL.GET_USER_ID('FRANK');

APEX_UTIL.FETCH_USER(
    p_user_id                       => l_user_id,
    p_workspace                     => l_workspace,
    p_user_name                     => l_user_name,
    p_first_name                    => l_first_name,
    p_last_name                     => l_last_name,
    p_web_password                  => l_web_password,
    p_email_address                 => l_email_address,
    p_start_date                    => l_start_date,
    p_end_date                      => l_end_date,
    p_employee_id                   => l_employee_id,
    p_allow_access_to_schemas       => l_allow_access_to_schemas,
    p_person_type                   => l_person_type,
    p_default_schema                => l_default_schema,
    p_groups                        => l_groups,
    p_developer_role                => l_developer_role,
    p_description                   => l_description,
    p_account_expiry                => l_account_expiry,
    p_account_locked                => l_account_locked,
    p_failed_access_attempts        => l_failed_access_attempts,
    p_change_password_on_first_use  => l_change_password_on_first_use,
    p_first_password_use_occurred   => l_first_password_use_occurred);
APEX_UTIL.EDIT_USER (
    p_user_id                       => l_user_id,
    p_user_name                     => l_user_name,
    p_first_name                    => l_first_name,
    p_last_name                     => l_last_name,
    p_web_password                  => l_web_password,
    p_new_password                  => l_web_password,
    p_email_address                 => l_email_address,
    p_start_date                    => l_start_date,
    p_end_date                      => l_end_date,
    p_employee_id                   => l_employee_id,
    p_allow_access_to_schemas       => l_allow_access_to_schemas,
    p_person_type                   => l_person_type,
    p_default_schema                => l_default_schema,
    p_group_ids                     => l_groups,
    p_developer_roles               => 'ADMIN:CREATE:DATA_LOADER:EDIT:HELP:MONITOR:SQL',
    p_description                   => l_description,
    p_account_expiry                => l_account_expiry,
    p_account_locked                => l_account_locked,
    p_failed_access_attempts        => l_failed_access_attempts,
    p_change_password_on_first_use  => l_change_password_on_first_use,
    p_first_password_use_occurred   => l_first_password_use_occurred);
END;