Adrian - when I follow the same steps what you did . in my case , the result is false.
grant usage on schema public to role_test ; GRANT SELECT rolname, has_schema_privilege('role_test', 'public', 'usage') from pg_roles where rolname = 'role_test'; rolname | has_schema_privilege -----------+---------------------- role_test | f On Fri, Jun 12, 2020 at 10:11 PM Adrian Klaver <adrian.kla...@aklaver.com> wrote: > On 6/12/20 3:56 PM, sekhar chandra wrote: > > I am not able to give usage permission to public schema. below are the > > steps. > > > > > > Logged in as super user > > created a new user as user1 > > grant usage on public to user1 > > Either the above is a cut and paste error or you got an error: > > grant usage on public to role_test ; > ERROR: relation "public" does not exist > > grant usage on schema public to role_test ; > GRANT > > SELECT rolname, has_schema_privilege('role_test', 'public', 'usage') > from pg_roles where rolname = 'role_test'; > rolname | has_schema_privilege > -----------+---------------------- > role_test | t > > > > > > command completed successfully , but verification statement showing he > > doesnt have usage permission. > > SELECT rolname, has_schema_privilege(rolname, 'public', 'usage') from > > pg_roles; > > > > this is strage. what could go wrong. > > > -- > Adrian Klaver > adrian.kla...@aklaver.com >