如何在PostgreSQL中为基于Web的应用程序设置用户账号[英] how to set up user accounts in PostgreSQL for Web based application

本文是小编为大家收集整理的关于如何在PostgreSQL中为基于Web的应用程序设置用户账号的处理方法,想解了如何在PostgreSQL中为基于Web的应用程序设置用户账号的问题怎么解决?如何在PostgreSQL中为基于Web的应用程序设置用户账号问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在开发一个以 PostgreSQL 作为后端数据库的基于 Web 的应用程序.perl 处理脚本

我将登录信息保存在一个单独的文件中,类似于此处的建议 去哪里存储全局数据库连接参数,因此根据脚本需要实现它可以指向不同的登录凭据目前它是默认的 PostgreSQL 帐户,这显然需要更改.

我需要弄清楚如何在 PostgreSQL 中设置用户帐户

我想我需要两个允许用户查询数据库,例如 web_user,另一个需要提交更改,例如 web_admin.

web_admin 账户需要登录网页

在 pgAdmin 或命令行中,我如何创建登录 Rolls 并提供所需的权限?

编辑请澄清

我曾尝试创建两个帐户,但不清楚这是否是正确的方法

CREATE USER web_user PASSWORD 'password1';
GRANT SELECT to web_user on Table1;   // Read Only
CREATE USER web_admin PASSWORD 'password2';
GRANT SELECT,INSERT,UPDATE,DELETE to web_admin on Table1;        // Read Insert and update / delete rows within a existing table but not able to create, alter or delete a Table  or column

编辑 2 个 oops

所以我在 pgAdmin 窗口中执行了以下操作

 CREATE USER web_user PASSWORD 'password1';
 GRANT SELECT to web_user in schema PUBLIC;   // Read Only

 CREATE USER web_admin PASSWORD 'password2';
 GRANT SELECT,INSERT,UPDATE,DELETE to web_admin in schema PUBLIC

web_user 帐户只允许对数据库进行读取访问,问题是 web_admin 帐户具有相同的读取访问权限

我试过 drop web_user &撤销者

revoke all privileges on database mydb from web_admin;

但它失败并显示有关列出 mydb 中所有表的依赖项的错误

我试图查看 web_admin 实际拥有的权限,但无法查看.

如何删除此帐户

grant web_user 的语法有什么问题?

推荐答案

要创建用户,您可以使用 CREATE USER 命令.(与 CREATE ROLE ... WITH LOGIN 相同)然后你使用 GRANT 授予权限.

我不确定您所说的"默认 PostgreSQL 帐户"是什么意思.如果您在谈论"postgres"帐户,它是超级用户,并且拥有一切权限.

特权和保护的话题相当复杂,我至少写过几次:

  1. 如何在 PostgreSQL 中授予所有表的权限
  2. 9.0
  3. 如何授予所有表的权限在 PostgreSQL > 9.0
  4. 如何保护您的数据库

本文地址:https://www.itbaoku.cn/post/1763913.html