To determine the set of existing roles, examine the pg_roles
- system catalog, for example
+ system catalog, for example:
SELECT rolname FROM pg_roles;
+
+ or to see just those capable of logging in:
+
+SELECT rolname FROM pg_roles WHERE rolcanlogin;
The program's \du meta-command
is also useful for listing the existing roles.
In order to bootstrap the database system, a freshly initialized
- system always contains one predefined role. This role is always
- a superuser
, and by default (unless altered when running
- initdb) it will have the same name as the
- operating system user that initialized the database
- cluster. Customarily, this role will be named
+ system always contains one predefined login-capable role. This role
+ is always a superuser
, and by default it will have
+ the same name as the operating system user that initialized the
+ database cluster, unless another name is specified while
+ running initdb.
+ It is common, but not required, to arrange for this role to be named
postgres. In order to create more roles you
first have to connect as this initial role.