具有特定权限的 Postgresql 用户

Posted

技术标签:

【中文标题】具有特定权限的 Postgresql 用户【英文标题】:Postgresql user with specific privileges 【发布时间】:2014-05-18 00:04:11 【问题描述】:

在 Postgresql 中,我将如何创建一个可以执行所有操作的用户,包括创建角色、删除数据库、删除角色、删除表,但它可以创建数据库。

本质上,此用户将用于访问存储、更新和检索数据的应用程序的数据库,并且用户可以创建数据库。

【问题讨论】:

当您说“创建数据库”时,我假设您的意思是“在该数据库中创建表和模式,在表上创建索引等”? 您的问题非常模棱两可,给人的印象是您对数据库概念和术语感到困惑。您能否在应用程序中重新表述该用户需要做什么? 我有一个 Postgresql 实例。在那种情况下是多个数据库。我希望有一个不是超级用户但可以在所有数据库中的所有表中选择、插入、更新、删除的用户,包括可能创建的任何新数据库。我希望用户能够创建数据库但不能删除它。我也不希望用户能够创建角色。很抱歉有任何混淆。我是 Postgresql 的新手,在 mysql 中,您可以使用 phpmyadmin 中的复选框来选择所需的权限,然后选择数据库。在 phppgadmin 权限中不能单独选择。 【参考方案1】:

您创建一个用户并使该用户成为数据库的所有者:

必须以超级用户身份完成以下操作:

create user arthur password 'verysecret';
create database arthur_db owner = arthur;

现在亚瑟可以在那个数据库中做任何事情。

【讨论】:

以上是关于具有特定权限的 Postgresql 用户的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Postgresql 中的所有数据库创建具有只读权限的用户?

在 PostgreSQL 中创建/删除索引的用户权限

PostgreSQL 和 Django 的权限被拒绝错误。授予 PostgreSQL 用户管理员权限

更改 PostgreSQL 中组角色的默认权限

postgresql - 查看架构权限

MySQL:仅针对特定数据库创建具有权限的用户 [重复]