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
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.klaver@xxxxxxxxxxx> 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.klaver@xxxxxxxxxxx