I dropped both roles (Carlos & DBA) from the database and I will show
you exactly what I'm doing:
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
chris | Create DB, Replication | {}
postgres | Superuser, Create role, Create DB, Replication | {}
I am creating the new roles as the 'postgres' database user:
postgres=# CREATE ROLE carlos LOGIN CREATEDB CREATEROLE REPLICATION;
CREATE ROLE
postgres=# CREATE ROLE dba NOLOGIN;
CREATE ROLE
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
carlos | Create role, Create DB, Replication | {}
chris | Create DB, Replication | {}
dba | Cannot login | {}
postgres | Superuser, Create role, Create DB, Replication | {}
I was curious what happens when I used 'CREATE GROUP' versus 'CREATE
ROLE' so I gave it a shot but looks like it is the same:
postgres=# CREATE GROUP web;
CREATE ROLE
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------+-----------
carlos | Create role, Create DB, Replication | {}
chris | Create DB, Replication | {}
dba | Cannot login | {}
postgres | Superuser, Create role, Create DB, Replication | {}
web | Cannot login | {}
postgres=# \password carlos
Enter new password:
Enter it again:
Now I login as 'carlos':
carlos@debian:~$ psql -d postgres
Password:
psql (9.1.9)
Type "help" for help.
postgres=>
but...
--
Carlos Mennens