2.3 HAS_USER_ANY_ROLESファンクション

このファンクションは、指定されたユーザーがアプリケーション・ロールに割り当てられている場合にはTRUEを返します。このファンクションを使用すると、ユーザーにアプリケーションへのアクセスが許可されているかどうかを確認できます。

構文

APEX_ACL.HAS_USER_ANY_ROLES (
    p_application_id IN NUMBER   DEFAULT apex_application.g_flow_id,
    p_user_name      IN VARCHAR2 DEFAULT apex_application.g_user )
    RETURN boolean;

パラメータ

表2-3 HAS_USER_ANY_ROLESファンクションのパラメータ

パラメータ 説明
p_application_id ユーザーがアプリケーション・ロールに割り当てられているかどうかを確認するアプリケーションID。デフォルトは、現在のアプリケーションです。
p_user_name 確認するアプリケーション・ユーザーの大/小文字を区別しない名前。現在ログインしているユーザーがデフォルトに設定されます。

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

DECLARE
    l_has_user_any_roles boolean := false;
BEGIN
    l_has_user_any_roles := APEX_ACL.HAS_USER_ANY_ROLES (
                              p_application_id  => 255,
                              p_user_name       => 'SCOTT' );

    IF NOT l_has_user_any_roles THEN
        raise_application_error(-20001, 'Scott is not assigned to any application role' );
    END IF;
END;