📜  PostgreSQL – 改变角色

📅  最后修改于: 2022-05-13 01:57:14.779000             🧑  作者: Mango

PostgreSQL – 改变角色

PostgreSQL 中, ALTER ROLE语句用于管理和修改角色。它可用于修改角色的名称、角色的属性以及更改配置变量的角色会话默认值。

Syntax: ALTER ROLE role_name [WITH] option;

以下函数可用于 ALTER ROLE 语句:

  • 超级用户 | NOSUPERUSER – 用于确定角色是否为超级用户。
  • VALID UNTIL 'timestamp' – 用于指定角色密码的到期日期和时间。
  • 创建数据库 | NOCREATEDB - 用于为角色提供创建新数据库的权限。
  • 复制 | NOREPLICATION – 用于检查角色是否为复制角色。
  • 创造者 | NOCREATEROLE – 用于为角色提供创建或修改角色的权限。
  • PASSWORD '密码' | PASSWORD NULL – 用于更改角色的密码。
  • 继承 | NOINHERIT – 用于确定继承的角色是否具有父角色的所有继承权限。
  • 绕过 | NOBYPASSRLS – 用于检查角色是否可以绕过行级安全 (RLS) 策略。
  • 登录 | NOLOGIN – 顾名思义,它用于允许角色登录。
  • CONNECTION LIMIT 限制 - 用于设置角色可以建立的并发连接数。这里 -1 表示角色可以创建无限数量的行。

    以下是使用 ALTER ROLE 语句时必须遵循的一组规则:

    • 超级用户可以修改任何角色的属性。
    • 如果角色具有 CREATE ROLE 属性,则只能修改非超级用户和非复制角色。
    • 序数角色只能更改其密码。

    例子:

    首先,使用 Postgres 角色登录 PostgreSQL。



    现在,使用 CREATE ROLE 语句创建一个名为“Ravi”的新角色:

    create role ravi login password 'geeks12345';
    

    现在使用以下语句将 ravi 的角色修改为超级用户:

    alter role ravi superuser;
    

    要查看角色,请使用以下命令:

    \du ravi
    

    输出: