Permissões do usuário para criar o banco de dados PostgreSQL

21

Estou trabalhando no Ubuntu. A seguir, um dos meus comandos.

$ psql -U kuser -d postgres

Em seguida, isso se conecta ao banco de dados. Mas do terminal postgres quando eu tento

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

Quando eu tento um comando similar no Ubuntu, ele dá o seguinte

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

Como faço para criar este banco de dados? Eu tenho direitos de sudo e kuser não sou eu.

    
por dinesh707 19.11.2012 / 16:03

1 resposta

41

Parece que você tem um usuário do banco de dados chamado kuser , mas não há nenhum usuário do sistema com esse nome. É por isso que você pode obter um prompt do postgres como esse usuário, mas o sudo falha.

Esse usuário não pode criar um banco de dados, porque essa conta não tem a permissão necessária.

Você pode conceder essa permissão ao usuário, usando a conta postgres , que é a conta de gerenciamento padrão no Ubuntu:

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

Ou você pode simplesmente usar essa conta de gerenciamento para criar o banco de dados e especificar que é de propriedade da conta kuser :

sudo -u postgres createdb -O kuser kdb

Se esse usuário não for criar outros bancos de dados, aconselho usar a última opção, é melhor limitar os privilégios concedidos à conta.

    
por 19.11.2012 / 16:25

Tags