Chapter 19. Database Roles and Privileges
PostgreSQL manages database access permissions
using the concept of roles. A role can be thought of as
either a database user, or a group of database users, depending on how
the role is set up. Roles can own database objects (for example,
tables) and can assign privileges on those objects to other roles to
control who has access to which objects. Furthermore, it is possible
to grant membership in a role to another role, thus
allowing the member role use of privileges assigned to the role it is
a member of.
The concept of roles subsumes the concepts of "users" and
"groups". In PostgreSQL versions
before 8.1, users and groups were distinct kinds of entities, but now
there are only roles. Any role can act as a user, a group, or both.
This chapter describes how to create and manage roles and introduces
the privilege system. More information about the various types of
database objects and the effects of privileges can be found in
Chapter 5.