自学内容网 自学内容网

【postgresql】角色(Role)

 PostgreSQL 中,角色(Role)是一个重要的概念,用于管理数据库的访问权限和用户身份。角色可以被视为用户或组,具体取决于它们的配置方。

角色属性

角色可以具有多种属性:

  • LOGIN:允许角色登录数据库。

  • SUPERUSER:赋予角色超级用户权限。

  • CREATEDB:允许角色创建新的数据库。

  • CREATEROLE:允许角色创建和管理其他角色。

  • INHERIT:允许角色继承其所属组的权限。

  • REPLICATION:允许角色进行流复制。

  • PASSWORD:设置角色的密码。

创建角色

role_name 遵循 SQL 标识的规则:
要么完全没有特殊字符,
要么用双引号包围(实际上你通常会给命令增加额外的选项)。

CREATE ROLE demo_user ;

或者

CREATE ROLE demo_user WITH LOGIN PASSWORD 'mypassword';

这个命令创建了一个名为 myuser 的角色,并赋予它登录权限和密码。

角色组

角色可以被组织成组,以便更方便地管理权限。你可以创建一个角色作为组,并将其他角色添加到这个组中。

CREATE ROLE demogroup;

GRANT demogroup TO demouser;

创建了一个名为 demogroup的角色组,并将 demouser 角色添加到这个组中。

权限管理

使用 GRANT 和 REVOKE 命令来管理角色的权限。

GRANT :授予权限

REVOKE : 撤销权限

GRANT SELECT, INSERT ON demotable TO demouser;

REVOKE UPDATE ON demotable FROM demouser;

删除角色

使用 DROP ROLE 命令来删除一个角色

DROP ROLE demouser;

检查现有角色的集合

要检查现有角色的集合,可以检查pg_roles系统表,

SELECT rolname FROM pg_roles;

psql的元命令  \du   也可以用于列出现有角色。

为了能创建初始数据库系统,新建立的数据库总是包含一个预定义的"超级用户"角色, 并且缺省时(除非在运行initdb时更改过) 他将和初始化该数据库集群的用户有相同的名称。通常,这个角色名叫postgres。 为了创建更多角色,你必须首先以这个初始用户角色连接。





原文地址:https://blog.csdn.net/wochunyang/article/details/140439862

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!