Postgres role without attribute Login
The clause is NOLOGIN, not NONLOGIN. (I suggest copy/paste for quotes.)

The clause is for "group" roles, which used to actually be GROUP before Postgres 8.1 - which is still supported. See CREATE GROUP in the manual. Related:


Why did PostgreSQL merge users and groups into roles?


Group roles are very useful to bundle privileges and then grant / revoke the whole package to LOGIN roles. See:


Grant privileges for a particular database in PostgreSQL


Or to act as demons within the database:


Allow insertion only from within a trigger