> Hi, > > I have executed below queries. > > CREATE SCHEMA mydb_schema AUTHORIZATION postgres; > > GRANT ALL ON SCHEMA mydb_schema TO postgres; > > REVOKE ALL ON SCHEMA mydb_schema FROM PUBLIC; > REVOKE ALL ON FUNCTION mydb_schema.readtable() FROM PUBLIC; > > GRANT EXECUTE ON FUNCTION mydb_schema.readtable() to user1; > > GRANT SELECT ON mydb_schema.test1 TO user1; > > $ psql -h postgresqlhost.aus -d mydb -U user1 > psql (8.4.1) > Type "help" for help. > user1=> select mydb_schema.readtable(); > ERROR: permission denied for schema mydb_schema > user1=> select * from mydb_schema.test1; > ERROR: permission denied for mydb_schema > LINE 1: select * from mydb_schema.test1; > ^ > user1=> > > Could anyone please tell me what is wrong here? *I want users to have only > select persions on tables of mydb_schema schema and function readtable
> execute permissions for only few users(like above user1).* >
You should at least GRANT USAGE on your schema mydb_schema to your users.