LittleFatNinja
@LittleFatNinja
горе девелопер, любитель лютой садомии

Как в PostgreSQL создать read-only user?

пробовал
CREATE DATABASE shop;
CREATE USER viewer;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO viewer;

создаю таблицу и переключаюсь на viewer, вставляю элемент и все ок
CREATE TABLE category(	name VARCHAR(70));
ALTER USER viewer;
INSERT INTO category(name) VALUES ('food');    --ok. no error


смотрю привелегии для бд, так там viewer вообще нет
SELECT datname, datacl FROM pg_database;

shop      |  {=Tc/postgres,postgres=CTc/postgres}
  • Вопрос задан
  • 3923 просмотра
Пригласить эксперта
Ответы на вопрос 2
@PapaStifflera
Родился, вырос...
Комментировать
@some1else
Вы на правильном пути, но, видимо, не правильно проверяете права - вы пишете, что "переключаюсь на viewer", а сами приводите команду ALTER USER viewer; - не для переключения, а для редактирования пользователя. Удивительно, что это синтаксически корректно - пустой список изменений. То есть, по сути, у вас команда что-то типа "изменить пользователя viewer <ничего не менять>;". Для переключения на пользователя есть
SET ROLE - www.postgresql.org/docs/9.4/static/sql-set-role.html
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы