Доступ до PostgreSQL на Mac без переключення користувачів


0

У мене на Mac працює ОС X Lion (10.7.5), з встановленою PostgreSQL 9.2.4. Я ініціалізував кластер бази даних і запустив сервер, як postgresкористувач. Коли я намагаюся отримати доступ до певних каталогів, пов’язаних із моєю установкою PostgreSQL, або виконати певні бінарні файли, мені потрібно спочатку перейти до postgresкористувача. Наприклад:

# Ideally I'd want this to work:
my_name$ psql
psql: FATAL:  role "my_name" does not exist

# I'd settle for this working, but it doesn't
my_name$ sudo psql
psql: FATAL:  role "root" does not exist

# I don't understand why this doesn't work but the next things does
my_name$ sudo su postgres psql
/opt/local/lib/postgresql92/bin/psql: /opt/local/lib/postgresql92/bin/psql: cannot execute binary file

# This works
my_name$ sudo su postgres
sh$ psql
psql (9.2.4)
Type "help" for help.

Інший приклад:

my_name$ cd /opt/local/var/db/postgresql92/defaultdb
-bash: cd: /opt/local/var/db/postgresql92/defaultdb/: Permission denied

my_name$ sudo su postgres cd /opt/local/var/db/postgresql92/defaultdb
my_name$ pwd
/Users/my_name

my_name$ sudo su postgres
sh$ cd /opt/local/var/db/postgresql92/defaultdb
sh$ pwd
/opt/local/var/db/postgresql92/defaultdb
  1. Чому це sudo su postgres <cmd>не працює, але коли я відокремлюю кроки перемикання користувача, а потім викликаю команду, вона працює?
  2. Чи є інший спосіб цього, щоб мені не довелося перемикати користувачів кожного разу?
  3. Загалом, чи є спосіб надати користувачеві всі дозволи іншого користувача на додаток до тих, які він уже має? Наприклад, я можу додати всі postgresдозволи my_nameкористувача до дозволів користувача?

Відповіді:


0

У вас повинен бути створений користувач у вашій базі даних postgresql і дозволити його з localhost у вашому файлі pg_hba.conf - велика кількість прикладів у файлі з різними параметрами.

Тоді ви можете зробити:

psql -H localhost -U myuser

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.