Создание табличного пространства в postgresql
Я пытаюсь создать табличное пространство в postgres, но у меня проблемы с владением. Команда, которую я использую:
CREATE TABLESPACE magdat OWNER maggie LOCATION '/home/john/BSTablespace'
Я получаю сообщение об ошибке:
ERROR: could not set permissions on directory "/home/john/BSTablespace": Operation not permitted
папка принадлежит postgres: postgres, я попытался изменить ее на Мэгги, но если я пойду:
chown maggie:postgres /home/john/BSTablespace
Я:
chown: invalid user: `maggie:postgres'
Почему пользователь не существует? Если я перечислю пользователей внутри postgres, он появится. Есть идеи, что я могу сделать неправильно?
2 ответов
Я бы рискнул предположить, что проблема заключается в разрешениях родительского каталога "/home/john". Ваш домашний каталог, вероятно, настроен так, что только ваш пользователь имеет доступ (i.e chmod 700) к нему (хорошо, что ваш домашний каталог будет chmod 700, Не меняйте его).
делать что-то вроде:
mkdir /BSTablespace chown postgres:postgres /BSTablespace
а то
CREATE TABLESPACE magdat OWNER maggie LOCATION '/BSTablespace';
должно работать нормально.
Что касается пользователя Мэгги: пользователи базы данных не то же самое, что пользователи ОС. Что нельзя сказать, что у вас не может быть пользователя в обоих местах с именем Мэгги, но вам нужно будет создать пользователя как в базе данных, так и в ОС, чтобы это произошло.
когда вы устанавливаете Postgres на Mac и пытаетесь использовать PgAdmin
для создания баз данных, табличных пространств и т. д. Вы должны знать, что PgAdmin Utility
выполняется под postgres
учетная запись, созданная при установке базы данных postgres и утилит.
на postgres account
является частью _postgres
группа
( dscacheutil -q group|grep -i postgres
команда перечислит группу, связанную с