Adam,

yes, you're right. I can connect via PSQL, but get error in PSQL, when I
try to list databases.

That's what I need, because I don't want show all users and all databases
to our client, who will be connected by this restricted user.

My goal: user CAN NOT view pg_databases and pg_roles, but CAN connect to
his database via pgadmin and execute sql statements.

2015-12-16 16:10 GMT+05:00 Adam Pearson <adam.pear...@4finance.com>:

> Hello Vladimir,
>
>             If you look at the data in those tables, they relate to what
> is stored on the PostgreSQL instance.  If PGAdmin can’t read those
> databases when it fires up, using the username provided then I would assume
> that it can’t list the databases in PGAdmin (not a PGAdmin developer, but
> would assume it reads this table when firing up to list all the databases,
> then when you click on the database it checks your permissions).
>
>
>
> If you connect via PSQL to the mydb I’m guessing this works fine?
>
>
>
> If you connect via PSQL and list all databases when under the users login,
> does it list all databases on the server or error?
>
>
>
> Try granting those permissions back and try again.
>
>
>
> Regards,
>
> Adam Pearson
>
>
>
> *From:* pgadmin-support-ow...@postgresql.org [mailto:
> pgadmin-support-ow...@postgresql.org] *On Behalf Of *???????? ???????
> *Sent:* 16 December 2015 11:04 AM
> *To:* Nikolai Zhubr
> *Cc:* pgadmin-support@postgresql.org
> *Subject:* Re: [pgadmin-support] Connection by user with restricted
> access to pg_database
>
>
>
> Nikolai, thank you for your answer.
>
>
> I expect that pgadmin connects to my database and I can execute some sql
> queries to get data. But instead I get window with error about permission
> denied.
>
> When I click OK, I get something like this:
>
>
> [image: Встроенное изображение 1]
>
> then i press Continue, and get this window:
>
> [image: Встроенное изображение 2]
>
> and it is repeated several times. Then I see my connection, but there no
> databases, and I can not view tables list and execute some sql.
>
> [image: Встроенное изображение 3]
>
>
>
> 2015-12-16 15:40 GMT+05:00 Nikolai Zhubr <n-a-zh...@yandex.ru>:
>
> Hello,
> 16.12.2015 10:04, Владимир Янченко:
> [...]
>
> 2015-12-15 15:33:54 ERROR  : ERROR:  permission denied for relation
> pg_database
> 2015-12-15 15:33:55 ERROR  : ERROR:  permission denied for relation
> pg_tablespace
> 2015-12-15 15:33:56 ERROR  : ERROR:  permission denied for relation
> pg_roles
> 2015-12-15 15:33:58 ERROR  : ERROR:  permission denied for relation
> pg_roles
>
> pgAdmin version: 1.20.0
> Postgresql version: 9.4.2
> Postgresql OS: Ubuntu 12.04.3 Server
> Client OS: Ubuntu desktop 14.10 x64
>
> Does a workaround exist for this situation?
>
>
> What exactly do you mean by "workaround" here? What do you expect pgadmin
> to (be able) do?
>
>
> Regards,
> Nikolai
>
>
>
>
> How to reproduce:
>
> psql -d template1
>
> REVOKE ALL ON DATABASE template1 FROM public;
> REVOKE ALL ON SCHEMA public FROM public;
> REVOKE ALL ON pg_user FROM public;
> REVOKE ALL ON pg_roles FROM public;
> REVOKE ALL ON pg_group FROM public;
> REVOKE ALL ON pg_authid FROM public;
> REVOKE ALL ON pg_auth_members FROM public;
> REVOKE ALL ON pg_stat_activity FROM public;
> REVOKE ALL ON pg_database FROM public;
> REVOKE ALL ON pg_tablespace FROM public;
> GRANT ALL ON SCHEMA public TO postgres;
> CREATE DATABASE mydb;
>
> psql -d mydb
>
> REVOKE ALL ON DATABASE mydb FROM public;
> CREATE ROLE myuser NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT LOGIN
> ENCRYPTED PASSWORD '123';
> GRANT USAGE ON SCHEMA public TO myuser;
> GRANT CONNECT ON DATABASE mydb TO myuser;
> ALTER DEFAULT PRIVILEGES FOR ROLE mydb IN SCHEMA public GRANT SELECT
> ON TABLES to myuser;
> GRANT SELECT ON ALL TABLES IN SCHEMA public TO myuserr;
>
> Then connect with pgadmin, maintenance database: mydb, user: myuser.
>
> --
> Vladimir Yanchenko
> Suport engineer
> Naumen
>
>
>
> --
> Sent via pgadmin-support mailing list (pgadmin-support@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgadmin-support
>
>
>

Reply via email to