更新时间:2025-09-11 GMT+08:00
分享

ALTER GROUP

功能描述

更改角色名称或者成员关系。

注意事项

  • ALTER GROUP为非SQL标准语法,不推荐使用。
  • 其中ADD USER、DROP USER两个子句用于向用户组增加或删除用户(任何用户都可以是“用户”或者“用户组”)。这两个子句等效于授予或者回收成员关系,因此建议使用GRANT或者REVOKE语句。
  • RENAME TO子句修改用户组名称,等效于ALTER USER命名角色。

语法格式

  • 向用户组中添加用户。
    ALTER GROUP group_name 
        ADD USER user_name [, ... ];

  • 从用户组中删除用户。
    ALTER GROUP group_name 
        DROP USER user_name [, ... ];

  • 修改用户组的名称。
    ALTER GROUP group_name 
        RENAME TO new_name;

参数说明

  • user_name

    现有角色名。

    取值范围:已存在的角色名,角色名要求详见•role_name

  • group_name

    现有用户组名。

    取值范围:已存在的角色名,角色名要求详见•role_name

示例

  • 重命名用户组。
    --创建用户组test。
    m_db=# CREATE GROUP test PASSWORD '********';
    
    --修改用户名,等效于ALTER GROUP RENAME。
    m_db=# ALTER GROUP test RENAME TO tu_a1;
  • 向用户组中添加或者删除用户。
    --创建用户tu_a2、tu_a3。
    m_db=# CREATE ROLE tu_a2 PASSWORD '********';
    m_db=# CREATE ROLE tu_a3 PASSWORD '********';
    
    --向用户组tu_a1中添加用户tu_a2。
    m_db=# ALTER GROUP tu_a1 ADD USER tu_a2;
    
    --如上SQL等效于GRANT语句。
    m_db=# GRANT tu_a1 TO tu_a3;
    
    --查询。
    m_db=# SELECT groname, grolist FROM pg_group WHERE groname = 'tu_a1';
     groname |    grolist    
    ---------+---------------
     tu_a1   | {25590,25593}
    (1 row)
    m_db=# SELECT rolname, oid FROM pg_roles WHERE oid IN (25590,25593);
     rolname |  oid  
    ---------+-------
     tu_a2   | 25590
     tu_a3   | 25593
    (2 rows)
    
    --删除。
    m_db=# DROP ROLE tu_a1,tu_a2,tu_a3;

相关文档