Права пользователя для создания БД PostgreSQL


24

Я работаю над Ubuntu. Ниже приводится одна из моих команд.

$ psql -U kuser -d postgres

Затем это подключается к базе данных. Но из терминала Postgres, когда я пытаюсь

postgres=> CREATE DATABASE kdb;
ERROR:  permission denied to create database

Когда я пытаюсь подобную команду в Ubuntu, она дает следующее

$ sudo -u kuser createdb kdb
sudo: unknown user: kuser
sudo: unable to initialize policy plugin

Как мне создать эту БД? У меня есть права sudo, а kuser - это не я.

Ответы:


44

Похоже, у вас есть пользователь базы данных с именем kuser, но нет системного пользователя с таким именем. Вот почему вы можете получить приглашение postgres, но sudo не работает.

Этот пользователь не может создать базу данных, потому что учетная запись не имеет createdbразрешения.

Вы можете предоставить это разрешение пользователю, используя postgresучетную запись (учетная запись управления по умолчанию в Ubuntu):

sudo -u postgres psql -c 'alter user kuser with createdb' postgres

Или просто используйте эту учетную запись управления для создания базы данных и укажите, что она принадлежит этой kuserучетной записи:

sudo -u postgres createdb -O kuser kdb

Если этот пользователь не будет создавать другие базы данных, я бы посоветовал использовать последний вариант, лучше ограничить привилегии, которые предоставляются учетной записи.


sudo -u postgres psql -c 'alter user USER_NAME with createdb' postgresспас мой день :)
AbdulMomen عبدالمؤمن
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.