创建 PostgreSQL DB 的用户权限

创建 PostgreSQL DB 的用户权限

我正在使用 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 不是我。

答案1

看起来您有一个名为 的数据库用户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

如果该用户不打算创建其他数据库,我建议使用后一个选项,最好限制授予该帐户的权限。

相关内容