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

11
创建一个只读用户在pgAdmin 4中有点棘手。以下是我所做的指南。
首先,关于这个过程的几句话。整个过程基于编辑您的DB的模式(非常简单和安全),因此这会为使用该方法的所有DB创建限制,除非您编辑每个DB的模式(同样很容易)。
首先,我们必须打开一个主对话框,选择您需要只读用户的目标DB->模式->右键单击“public”架构->属性。

pgAdmin4 db dialogue

在打开的窗口中,转到“默认权限”,并单击右上角的“+”。
  1. 在“受赠人”列中输入:“pg_read_all_data”,
  2. 在“特权”列中单击该字段,您将看到选项。仅启用“Select”。

pgAdmin 4 schema setup dialogue

在其余的选项卡(序列,函数,类型)中,您可以执行相同的操作(选择或使用)。点击“保存”。 在左侧边栏中向下滚动并找到“登录/组角色”。点击右键-> “创建”->“登录/组角色”。 或者,如果您有一个现有的用户角色需要设置为只读,请在其上点击右键并选择“属性”。 在打开的窗口中输入用户名,在“定义”选项卡中输入密码,在“权限”选项卡中选择“可以登录”和“继承父角色的权限?” 在“成员资格”选项卡中,在“所属成员”表中点击“+”,并将“pg_read_all_data”输入到“用户/角色”列中。

pgAdmin 4 membership dialogue

在“参数”选项卡中点击“+”。 在“名称”列的下拉菜单中选择“role”, 在“”列中输入“pg_read_all_data”。 在“数据库”列中选择所需的数据库(您在上一步中编辑了模式的数据库)。
请注意,您可以为不同的数据库添加具有相同设置的更多行(当然,如果这些数据库具有如上所示的编辑模式)。

pgAdmin parameters dialogue

点击"保存"。

现在,您可以使用此用户登录到PhpPgAdmin(或psql或任何其他需要的地方),仅执行选择操作。真正的只读用户角色。

enter image description here

我希望它能帮助某人。
1个回答

1
我没有足够的声望在您非常有帮助的帖子上发表评论,但是想补充一点,公共模式默认情况下为PUBLIC角色(所有用户隐含的角色)提供完全访问权限。因此,您首先需要撤销此访问权限。 可以在pgAdmin中在模式属性对话框的安全选项卡中完成此操作,或使用SQL命令完成。
REVOKE CREATE ON SCHEMA public FROM PUBLIC;

参见:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接