Задать вопрос
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}
  • Вопрос задан
  • 3986 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    PostgreSQL. Advanced
    4 месяца
    Далее
  • Учебный центр IBS
    QPT PostgreSQL 16. Оптимизация запросов
    1 неделя
    Далее
  • Слёрм
    PostgreSQL База
    4 недели
    Далее
Пригласить эксперта
Ответы на вопрос 2
@PapaStifflera
Родился, вырос...
Комментировать
@some1else
Вы на правильном пути, но, видимо, не правильно проверяете права - вы пишете, что "переключаюсь на viewer", а сами приводите команду ALTER USER viewer; - не для переключения, а для редактирования пользователя. Удивительно, что это синтаксически корректно - пустой список изменений. То есть, по сути, у вас команда что-то типа "изменить пользователя viewer <ничего не менять>;". Для переключения на пользователя есть
SET ROLE - www.postgresql.org/docs/9.4/static/sql-set-role.html
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы