GSto Asked: 2013-01-22 12:28:24 +0800 CST2013-01-22 12:28:24 +0800 CST 2013-01-22 12:28:24 +0800 CST 授予用户帐户在 PostgreSQL 中创建数据库的权限 772 如何让 PostgreSQL 中的用户帐户能够创建和删除数据库?有没有办法做到这一点GRANT? postgresql permissions 3 个回答 Voted Best Answer Daniel Vérité 2013-01-22T13:57:03+08:002013-01-22T13:57:03+08:00 它完成了ALTER USER username CREATEDB; 请参阅文档中的 ALTER USER。 要删除数据库,您要么是超级用户(也可以被授予ALTER USER),要么您必须拥有该数据库。 Tomislav 2013-01-22T13:59:04+08:002013-01-22T13:59:04+08:00 首先,您必须以 postgres 用户身份登录: $ sudo -u postgres psql postgres # \password postgres Enter new password: 在为 postgres 用户(PostgreSQL 上的特殊用户)输入新密码后,您现在以 postgres 身份登录,您可以授予其他用户权限。假设您有名为 user1 的用户。要授予他创建和删除数据库的能力,您必须编写(作为 postgres 用户): ALTER USER user1 CREATEDB; 希望这可以帮助... Paul-Sebastian 2020-03-31T02:49:27+08:002020-03-31T02:49:27+08:00 从一开始就创建具有 CREATEROLE 和 CREATEDB 权限的用户 在您使用命令行客户端登录到 PG 服务器后,使用具有创建用户的适当权限的用户(如postgres用户,默认情况下,在 UNIX 上,系统超级用户可以使用 轻松模拟该用户$ sudo -u postgres psql postgres): CREATE ROLE user_name PASSWORD 'tYPe_YoUr_PaSSwOrD' NOSUPERUSER CREATEDB CREATEROLE INHERIT LOGIN; NOSUPERUSER - 正在创建的用户没有超级用户权限(如postgres用户,推荐)。 CREATEDB - 正在创建的用户可以创建它将拥有的数据库。 CREATEROLE - 被创建的用户可以为其拥有或具有特定访问权限的对象创建角色(登录名)(如它创建的数据库)。 INHERIT - 正在创建的用户继承一些默认选项,可选。 LOGIN - 正在创建的用户有权登录。 也可以使用 PG 二进制文件(应用程序)。比如上面的SQL相当于运行: sudo -u postgres createuser --createdb --createrole --pwprompt user_name 授予现有用户创建数据库的权限 在您使用命令行客户端登录到 PG 服务器后,使用具有更改用户的适当权限的用户(如postgres用户,默认情况下,在 UNIX 上,系统超级用户可以使用 轻松模拟该用户$ sudo -u postgres psql postgres): ALTER USER user_name CREATEDB; 或者,赋予与上述示例相同的权利: ALTER USER user_name CREATEDB CREATEROLE LOGIN;
它完成了
ALTER USER username CREATEDB;
请参阅文档中的 ALTER USER。
要删除数据库,您要么是超级用户(也可以被授予
ALTER USER
),要么您必须拥有该数据库。首先,您必须以 postgres 用户身份登录:
在为 postgres 用户(PostgreSQL 上的特殊用户)输入新密码后,您现在以 postgres 身份登录,您可以授予其他用户权限。假设您有名为 user1 的用户。要授予他创建和删除数据库的能力,您必须编写(作为 postgres 用户):
希望这可以帮助...
从一开始就创建具有 CREATEROLE 和 CREATEDB 权限的用户
在您使用命令行客户端登录到 PG 服务器后,使用具有创建用户的适当权限的用户(如
postgres
用户,默认情况下,在 UNIX 上,系统超级用户可以使用 轻松模拟该用户$ sudo -u postgres psql postgres
):postgres
用户,推荐)。也可以使用 PG 二进制文件(应用程序)。比如上面的SQL相当于运行:
授予现有用户创建数据库的权限
在您使用命令行客户端登录到 PG 服务器后,使用具有更改用户的适当权限的用户(如
postgres
用户,默认情况下,在 UNIX 上,系统超级用户可以使用 轻松模拟该用户$ sudo -u postgres psql postgres
):或者,赋予与上述示例相同的权利: