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。
- new_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;