Permission denied в PostgreSQL

345
29 июля 2017, 07:06

Привет. У меня проблемы с PostgreSQL. Установил, создал роль, создал базу, таблицу, дал роли все права на работу с базой и с таблицей:

GRANT ALL PRIVILEGES ON DATABASE flaut TO flautdb;
GRANT ALL PRIVILEGES ON TABLE searches TO flautdb;

Но в PHP получаю ошибку:

Query failed: ERROR: permission denied for sequence searches_id_seq

Таблица состоит из двух полей:

id SERIAL PRIMARY KEY
data JSONB NOT NULL

Запрос PHP:

if(isset($_POST['data']) && !empty($_POST['data'])) {
    $data = json_encode($_POST['data'], JSON_UNESCAPED_UNICODE);
    //DB
    $db = getdb();
    $query = "INSERT INTO searches (data) VALUES ('$data') RETURNING id";
    $result = pg_query($query) or die('Query failed: ' . pg_last_error());
    pg_close($db);
    echo $result;
}
Answer 1

Тип данный serial - это просто синтаксическое сокращение для автоматического создания sequence и его использования как дефолтного значения для поля int.

Сами sequence живут отдельно от таблиц и так же требуют права для своего использования.

GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO flautdb;

Вообще, для работы с правами доступа postgresql необходимо

  • или разобраться, что и как вы хотите ограничивать в доступе и соответственно этому создать роли и предоставить права + default privileges для вновь создаваемых объектов
  • или изначально создать базу данных для owner'а

    create database dbname owner ownerusername;

и в дальнейшем работать и создавать все объекты именно этим owner'ом. Уже имеющуюся базу можно сменить через reassign owned запросы

READ ALSO
Обработка маршрута

Обработка маршрута

Каким образом лучше решить такую задачу:

234
cookie php как задать время жизни

cookie php как задать время жизни

помогите с cookie php а именно нужно задать время жизни для куки 30 дней

251
php json кэширование полученных в формате json данных

php json кэширование полученных в формате json данных

Когда пользователь первый раз запускает страницу, скрипт проверяет, есть ли файл cachetxt и если его нет, а при первом запуске его нет,он (скрипт,...

259