User-Defined Roles

A user-defined role is a custom collection of system and object-level privileges, typically created to group privileges related to a specific task or set of tasks.

A user-defined role:

The granting of a user-defined role is semantically equivalent to individually granting each of its underlying system and object-level privileges.

A user-defined role can be granted with or without administrative rights. When granted with administrative rights, a user can manage (grant, revoke, and drop) the role, as well as use any of the underlying system and object-level privileges of the role. When granted with administrative rights only, a user can manage the role, but cannot use its underlying system and object-level privileges. When granted with no administrative rights, a user can use its underlying system and object-level privileges, but cannot manage the role.

Extending a user to act as a role is useful when you have a user with a set of system and object-level privileges that you want to grant to another user.

You cannot convert a user-defined role to a user-extended role, and vice versa.

When you grant a user-extended role to a user or another role, the grantee inherits all the system and object-level privileges that the user-extended role has, including any administration rights.

Note: Unless otherwise noted, the term user-defined role refers to both user-extended and user-defined roles.