gpt4 book ai didi

sql - 如何在 postgresql 中创建角色组

转载 作者:行者123 更新时间:2023-11-29 11:56:19 26 4
gpt4 key购买 nike

我可以在 postgresql 中创建一个角色。

  • 使用登录密码 'pass' 创建角色 myname;

我可以为该用户设置数据库模式的权限。

  • GRANT USAGE ON SCHEMA public TO myname;

并为用户选择权限。

  • GRANT SELECT ON ALL TABLES IN SCHEMA public TO myname;

但是我的数据库中有这么多用户。我不想为我的所有用户设置这些权限。其实我想创建角色组名:

  • 观众
  • 编辑
  • 管理员

viewer 将选择所有表的权限,editor 将对所有表具有选择、插入和更新权限。

我的用户将在这些组中。

我该怎么做?

最佳答案

CREATE ROLE viewer;
CREATE ROLE editor;
CREATE ROLE admin;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO viewer;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO viewer;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT,INSERT,UPDATE ON TABLES TO editor;
GRANT some_other_privs_to_admin_group

之后只需将组授予用户:

GRANT editor TO your_user;

等等

https://www.postgresql.org/docs/current/static/sql-alterdefaultprivileges.html https://www.postgresql.org/docs/current/static/sql-createrole.html

CREATE ROLE adds a new role to a PostgreSQL database cluster. A role is an entity that can own database objects and have database privileges; a role can be considered a “user”, a “group”, or both depending on how it is used.

A role having the LOGIN attribute can be thought of as a user. Roles without this attribute are useful for managing database privileges

关于sql - 如何在 postgresql 中创建角色组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47788441/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com