openGauss提供了一组默认角色,主要以gs_role前缀命名,提供对特定的、通常需要高权限的操作的访问,可以将这些角色GRANT给数据库内的其他用户或角色,让这些用户能够使用特定的功能。下表描述了openGauss内置的gs_role前缀角色的权限范围。
| 角色 | 权限描述 |
|---|---|
| gs_role_copy_files | 具有执行copy … to/from filename的权限,但需要先打开GUC参数enable_copy_server_files。 |
| gs_role_signal_backend | 具有调用函数pg_cancel_backend、pg_terminate_backend和pg_terminate_session来取消或终止其他会话的权限,但不能操作属于初始用户和PERSISTENCE用户的会话。 |
| gs_role_tablespace | 具有创建表空间(tablespace)的权限。 |
| 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。 |
| gs_role_account_lock | 具有加解锁用户的权限,但不能加解锁初始用户和PERSISTENCE用户。 |
| gs_role_pldebugger | 具有执行dbe_pldebugger下调试函数的权限。 |
| gs_role_directory_create | 具有执行创建directory对象的权限,但需要先打开GUC参数enable_access_server_directory。 |
| gs_role_directory_drop | 具有执行删除directory对象的权限,但需要先打开GUC参数enable_access_server_directory。 |
磐维数据库对内置角色做了增强,新增了3个内置角色。
三个新增的角色
pw_read_all_settings角色
磐维2.0版本很早就支持pw_read_all_settings角色,该角色可以读取所有配置变量,包括那些通常只对系统管理用户可见的信息。
nofaillogin角色
磐维3.0.2新增nofaillogin角色,支持设置用户密码不被自动锁定。被授予该角色的用户在登录数据库时可以连续无限次因密码错误登录失败而不被锁定。
该角色的功能与failed_login_attempts参数的关系如下:
1)当参数failed_login_attempts = 0 时,仍然保持对所有用户都不会因为密码错误登录失败被锁定,不管其是否具有nofaillogin角色。
2)当参数failed_login_attempts != 0 时,对没有nofaillogin角色的用户,仍然要按照该参数指定次数实现锁定,对拥有nofaillogin角色的用户,不进行锁定。
3)用户通过SQL语句主动锁定用户时优先级最高,无论该用户是否拥有nofaillogin角色,无论failed_login_attempts是否设置为0,用户都会被锁定。
password_no_expires角色
磐维3.1.1新增password_no_expires角色,支持设置用户密码不过期。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




