创建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不是我。

Answers:


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عبدالمؤمن
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.