У меня есть Postgresql 9.2 с базой данных и теперь попробуйте создать пользователя только для чтения. Я последовал за эти описания:postgres read only user not working
ERROR: permission denied for relation tablename on Postgres while trying a SELECT as a readonly user
How do you create a read-only user in PostgreSQL?
BasicallyI сделали следующее:
jbossmanager=# CREATE USER jbcust WITH ENCRYPTED PASSWORD '#######';
CREATE ROLE
jbossmanager=# GRANT USAGE ON SCHEMA jbossmanager to jbcust;
GRANT
jbossmanager=# ALTER DEFAULT PRIVILEGES IN SCHEMA jbossmanager GRANT SELECT ON TABLES TO jbcust;
ALTER DEFAULT PRIVILEGES
jbossmanager=# GRANT CONNECT ON DATABASE jbossmanager to jbcust;
GRANT
jbossmanager=# GRANT SELECT ON ALL SEQUENCES IN SCHEMA jbossmanager TO jbcust;
GRANT
jbossmanager=# GRANT SELECT ON ALL TABLES IN SCHEMA jbossmanager TO jbcust;
GRANT
После это "\ л" показывает следующее:
jbossmanager=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
--------------+--------------+----------+-------------+-------------+-------------------------------
jbossmanager | jbossmanager | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/jbossmanager +
| | | | | jbossmanager=CTc/jbossmanager+
| | | | | jbcust=c/jbossmanager
который выглядит хорошо для меня, также список o е таблицы в этой БД/схеме lokks штраф:
jbossmanager=# \dp+
Access privileges
Schema | Name | Type | Access privileges | Column access privileges
--------------+-------------------------------+----------+-----------------------------------+--------------------------
jbossmanager | env_server_standalone_info | table | jbossmanager=arwdDxt/jbossmanager+|
| | | jbcust=r/jbossmanager |
Но теперь, когда я подключаю как это jbcust пользователя к базе данных и попробовать:
#psql -d jbossmanager -U jbcust -h 127.0.0.1
Password for user jbcust:
psql (9.2.4)
Type "help" for help.
jbossmanager=> \dp+
Access privileges
Schema | Name | Type | Access privileges | Column access privileges
--------+------+------+-------------------+--------------------------
(0 rows)
Я понятия не имею, что это неправильно или что отсутствует.
Большое спасибо за помощь!
Используя те же настройки соединения, я не смог воспроизвести ошибку. Вы подключаетесь к 'psql' таким же образом в первом примере? –
Вы на 100% уверены, что подключаетесь к той же БД на том же хосте? –
В первом примере я подключил как: # PSQL -d jbossmanager -U jbossmanager -h 127.0.0.1 во втором случае, как это: # PSQL -d jbossmanager -U jbcust -h 127.0.0.1 Да, Я уверен, что это тот же db на том же хосте. – Sebi