You can set a role only if the current user has been granted the role, or if the role has been granted to PUBLIC.
For more information on roles, see "Using SQL roles" in the
If you specify a roleName of NONE, the effect is to unset the current role.
If you specify the role as a string constant or as a dynamic parameter
specification (
Setting a role identifies a set of privileges that is a union of the following:
In a session, the current privileges define what the session is allowed to access. The current privileges are the union of the following:
The SET ROLE statement is not transactional; a rollback does not undo the effect of setting a role. If a transaction is in progress, an attempt to set a role results in an error.