A user in Apex.
Once a user has been identified, the Application Express engine keeps track of each user by setting the value of the variable APP_USER.
From the APEX_APPLICATION package, the global variable G_USER specifies the currently logged in user.
A public user is not authenticated. Ie if all users have the same rights and privileges, they are referred to as public users. See Public
With an authentication through the database access descriptor (DAD), when Authentication equals the value in the Public User field , the Application Express engine considers the current session to be a “public user” session.
From the APEX_APPLICATION package, the global variable G_PUBLIC_USER holds this value.