• 【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 的角色,并赋予它登录权限和密码。

    角色组

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

    1. CREATE ROLE demogroup;
    2. GRANT demogroup TO demouser;

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

    权限管理

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

    GRANT :授予权限

    REVOKE : 撤销权限

    1. GRANT SELECT, INSERT ON demotable TO demouser;
    2. REVOKE UPDATE ON demotable FROM demouser;

    删除角色

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

    DROP ROLE demouser;

    检查现有角色的集合

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

    SELECT rolname FROM pg_roles;

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

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




  • 相关阅读:
    Epoxy:跨不同数据存储的 ACID 事务
    开源即时通讯IM框架 MobileIMSDK v6.4 发布
    vue中通过js控制scss变量
    【C++进阶】特殊类设计
    对于电商API接口详情问题-淘宝/天猫的介绍
    前端经典面试题 | Computed 和 Watch 的区别
    矩阵账号搭建流程,3步学会,直接拿去用即可
    超快的 Python 包管理工具「GitHub 热点速览」
    网络安全学习:系统文本编辑命令
    B-3:Web安全之综合渗透测试
  • 原文地址:https://blog.csdn.net/wochunyang/article/details/140439862