我在 Ubuntu 上工作。以下是我的命令之一。
$ psql -U kuser -d postgres
Run Code Online (Sandbox Code Playgroud)
然后这将连接到数据库。但是当我尝试时从 postgres 终端
postgres=> CREATE DATABASE kdb;
ERROR: permission denied to create database
Run Code Online (Sandbox Code Playgroud)
当我在 Ubuntu 中尝试类似的命令时,它给出了以下内容
$ sudo -u kuser createdb kdb
sudo: unknown user: kuser
sudo: unable to initialize policy plugin
Run Code Online (Sandbox Code Playgroud)
我如何创建这个数据库?。我有 sudo 权限,而 kuser 不是我。
qqx*_*qqx 49
看起来您有一个名为 的数据库用户kuser
,但没有具有该名称的系统用户。这就是为什么您能够获得 postgres 提示,但 sudo 失败的原因。
该用户无法创建数据库,因为该帐户没有createdb
权限。
您可以使用postgres
帐户(Ubuntu 上的默认管理帐户)向用户授予该权限:
sudo -u postgres psql -c 'alter user kuser with createdb' postgres
Run Code Online (Sandbox Code Playgroud)
或者只是使用该管理帐户来创建数据库并指定它归该kuser
帐户所有:
sudo -u postgres createdb -O kuser kdb
Run Code Online (Sandbox Code Playgroud)
如果该用户不打算创建其他数据库,我建议使用后一个选项,最好限制授予该帐户的权限。
归档时间: |
|
查看次数: |
44794 次 |
最近记录: |