HAS_ROLE
Checks whether a Vertica user role is granted to the specified user or role, and returns true or false.
You can also query system tables ROLES, GRANTS, and USERS to obtain information on users and their role assignments. For details, see Viewing User Roles.
Behavior Type
Syntax
HAS_ROLE
( [ 'grantee' ,] 'verify‑role' );
Parameters
grantee
|
Valid only for superusers, specifies the name of a user or role to look up. If this argument is omitted, the function uses the current user name ( If a non-superuser supplies this argument, Vertica returns an error. |
verify‑role
|
Name of the role to verify for grantee. |
Privileges
None
Examples
In the following example, a dbadmin
user checks whether user MikeL
is assigned the admnistrator
role:
=> \c You are now connected as user "dbadmin". => SELECT HAS_ROLE('MikeL', 'administrator'); HAS_ROLE ---------- t (1 row)
User MikeL
checks whether he has the regional_manager
role:
=> \c - MikeL You are now connected as user "MikeL". => SELECT HAS_ROLE('regional_manager'); HAS_ROLE ---------- f (1 row)
The dbadmin grants the regional_manager
role to the administrator
role. On checking again, MikeL
verifies that he now has the regional_manager
role:
dbadmin=> \c You are now connected as user "dbadmin". dbadmin=> GRANT regional_manager to administrator; GRANT ROLE dbadmin=> \c - MikeL You are now connected as user "MikeL". dbadmin=> SELECT HAS_ROLE('regional_manager'); HAS_ROLE ---------- t (1 row)