2.4 HAS_USER_ROLEファンクション

このファンクションは、ユーザーが指定されたロールに割り当てられている場合にはTRUEを返します。

構文

APEX_ACL.HAS_USER_ROLE (
    p_application_id in number   default wwv_flow_security.g_flow_id,
    p_user_name      in varchar2 default wwv_flow.g_user,
    p_role_static_id in varchar2 )
    return boolean;

パラメータ

表2-4 HAS_USER_ROLEファンクションのパラメータ

パラメータ 説明

p_application_id

ユーザーが特定のロールに割り当てられているかどうかを確認するアプリケーションID。デフォルトは、現在のアプリケーションです。

p_user_name

確認するアプリケーション・ユーザーの大/小文字を区別しない名前。デフォルトでは、現在ログインしているユーザーに設定されます。

p_role_static_id

ロール静的IDの大/小文字を区別しない名前。

次の例では、HAS_USER_ROLEファンクションを使用して、SCOTTというユーザー名がアプリケーション255ADMINISTRATORのロール静的IDに割り当てられているかどうかを確認する方法を示しています。

declare
    l_is_admin boolean := false;
begin
    l_is_admin := APEX_ACL.HAS_USER_ROLE (
                    p_application_id  => 255,
                    p_user_name       => 'SCOTT',
                    p_role_static_id  => 'ADMINISTRATOR' );

    if not l_is_admin then
        raise_application_error(-20001, 'Scott is NOT an administrator' );
    end if;
end;