如何在 pgAdmin 4 中创建只读用户?

问题描述 投票:0回答:2

在 pgAdmin 4 中创建只读用户有点棘手。 这是我如何做到的指南。

首先简单介绍一下流程。 整个过程基于为您的数据库编辑模式(非常简单和安全),因此这对您拥有的所有数据库使用该方法造成了限制,除非您为每个数据库编辑模式(同样,这很容易)。

首先,我们必须打开一个主对话框,选择您需要只读用户的目标数据库->Schemas->右键单击“public”模式->Properties.

在打开的窗口中转到“默认权限”,然后单击右上角的“+”。

  1. 在“Grantee”栏中输入:“
    pg_read_all_data
    ”,
  2. 在“Privileges”列中单击该字段,您将看到选项。仅启用“
    Select
    ”。

在其余选项卡(序列、函数、类型)上,您可以执行相同的操作(SelectUsage)。 点击“保存”。

在左侧边栏中向下滚动并找到“登录/组角色”。单击右键 -> Create -> Login/Group Role。 或者,如果您有一个现有的用户角色,您想要将其设置为只读,请单击它的右键并选择“Properties”。

在打开的窗口中输入用户名,在“Definition”选项卡上输入密码,在“Previliges”选项卡上选择“

Can login
”和“
Inherit rights from the parent roles?

在“Membership”选项卡中,点击“Member of”表中的“+”,然后在“

User/Role
”列中键入“pg_read_all_data”。

在“Parameters”选项卡中点击“+”。 在“

Name
”列的下拉列表中选择“role”, 在“
Value
”列中键入“pg_read_all_data”。 在“Database”列中选择所需的数据库(您已在前面的步骤中编辑了架构)。

注意,您可以为不同的数据库添加更多具有相同设置的行(当然,如果这些数据库具有如上所示的编辑模式)。

点击“保存”。

现在你可以在这个用户下登录到你的 PhpPgAdmin(或 psql 或任何你需要的地方)并且只做选择。真正的只读用户角色。

我希望它能帮助别人。

database postgresql pgadmin pgadmin-4 phppgadmin
2个回答
1
投票

我没有足够的声誉来评论你非常有用的帖子,但我想补充一点,默认情况下公共模式提供对 PUBLIC 角色(所有用户属于的隐式角色)的完全访问权限。 因此,您首先需要撤销此访问权限。

这可以在模式属性对话框的

Security
选项卡中的 pgAdmin 中完成,或者使用 SQL 命令

REVOKE CREATE ON SCHEMA public FROM PUBLIC;

另见:


-2
投票

谢谢! 对我很有用而且准时:) 我的问题是如何从 PGadmin 注销并登录。 我有在 docker 上运行的 Pgadmin,每次我去 url 时它都与默认管理员用户连接。 我如何强制其他成员登录? 这是我的 docker-compose.yml 文件:

version: '3.5'

services:
  pgadmin:
    container_name: pgadmin_container
    image: dpage/pgadmin4
    environment:
      PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:[email protected]}
      PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
      PGADMIN_CONFIG_SERVER_MODE: 'False'
    volumes:
      - pgadmin:/var/lib/pgadmin
    ports:
      - "${PGADMIN_PORT:-5050}:80"
    restart: unless-stopped
volumes:
  pgadmin:
© www.soinside.com 2019 - 2024. All rights reserved.