GaussDB提供了一组默认角色,以gs_role_开头命名。它们提供对特定的、通常需要高权限的操作的访问,可以将这些角色GRANT给数据库内的其他用户或角色,让这些用户能够使用特定的功能。在授予这些角色时应当非常小心,以确保它们被用在需要的地方。表1描述了内置角色允许的权限范围:
1、gs_role_copy_files:具有执行copy … to/from filename 的权限,但需要先打开GUC参数enable_copy_server_files。
2、gs_role_signal_backend:具有调用函数pg_cancel_backend、pg_terminate_backend和pg_terminate_session来取消或终止其他会话的权限,但不能操作属于初始用户和PERSISTENCE用户的会话。
3、gs_role_tablespace:具有创建表空间(tablespace)的权限。
4、gs_role_replication:具有调用逻辑复制相关函数的权限,例如kill_snapshot、pg_create_logical_replication_slot、pg_create_physical_replication_slot、pg_drop_replication_slot、pg_replication_slot_advance、pg_create_physical_replication_slot_extern、pg_logical_slot_get_changes、pg_logical_slot_peek_changes、pg_logical_slot_get_binary_changes、pg_logical_slot_peek_binary_changes。
5、gs_role_account_lock:具有加解锁用户的权限,但不能加解锁初始用户和PERSISTENCE用户。
6、gs_role_pldebugger:具有执行dbe_pldebugger下调试函数的权限。
7、gs_role_directory_create:具有执行创建directory对象的权限,但需要先打开GUC参数enable_access_server_directory。
8、gs_role_directory_drop:具有执行删除directory对象的权限,但需要先打开GUC参数enable_access_server_directory。
9、gs_role_public_dblink_drop:具有执行删除public database link对象的权限。
10、gs_role_public_dblink_alter:具有执行修改public database link对象的权限。




