rajan <vgmonnet(at)gmail(dot)com> writes:
> Please someone help me on the below. Unable to understand why user2 is not
> having access.
Because you said "noinherit". Per the CREATE ROLE man page:
INHERIT
NOINHERIT
These clauses determine whether a role “inherits” the privileges of
roles it is a member of. A role with the INHERIT attribute can
automatically use whatever database privileges have been granted to all
roles it is directly or indirectly a member of. Without INHERIT,
membership in another role only grants the ability to SET ROLE to that
other role; the privileges of the other role are only available after
having done so. If not specified, INHERIT is the default.
regards, tom lane