Дозволи користувача для створення 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

Як створити цю БД ?. Я маю права на судо, і кузер - це не я.

Відповіді:


44

Здається, у вас є ім’я користувача бази даних kuser, але немає системного користувача з цим ім'ям. Ось чому ви можете отримати підказку постгрес, але судо не вдається.

Цей користувач не в змозі створити базу даних, оскільки обліковий запис не має 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.