70. restricted_dba
70.1. 插件restricted_dba简介
restricted_dba 是一个 Kingbase 的扩展,可以实现对超级用户权限进行限制。
受限DBA是对数据库超级管理员用户权限进行限制的插件,开启此插件后,管理员的权限应当与普通用户一致,即限制了管理员用户的操作权限,包括系统级权限级及对象级权限。
-
插件名为 restricted_dba
-
插件版本 V1.0
70.2. 插件restricted_dba加载方法
在使用 restricted_dba 之前,我们需要将他添加到 kingbase.conf 文件的 shared_preload_libraries 中,并重启 KingbaseES 数据库。
shared_preload_libraries = 'restricted_dba, sepapower' # (change requires restart) 备注:它依赖于《 :ref:`KingbaseES数据库安全指南` 》 分立插件
70.3. 插件restricted_dba的参数配置
restricted_dba.restricted_enable
此参数标识是否开启受限DBA功能,默认是false即不开启受限DBA。此参数应由安全员开启。
70.3.1. 示例
create database res_test_db; create role res_test_super with superuser createrole login; \c res_test_db res_test_super alter system set restricted_dba.restricted_enable = true; ERROR: permission denied \c res_test_db sso alter system set restricted_dba.restricted_enable = true; call pg_reload_conf(); pg_reload_conf ---------------- t (1 row) \c res_test_db res_test_super show restricted_dba.restricted_enable; restricted_dba.restricted_enable ---------------------------------- on (1 row) create role res_test with login; \c res_test_db res_test create table res_test_table (id int); create view res_test_view (id) as select * from res_test_table; \c res_test_db res_test_super alter role res_test; ERROR: Restricted DBA can not alter user select * from res_test_table; ERROR: permission denied for table res_test_table select * from res_test_view; ERROR: permission denied for view res_test_view
70.4. 插件restricted_dba使用方法
具体参考《 KingbaseES安全指南 》 3.1.2.3 受限DBA章节。
70.5. 插件restricted_dba卸载方法
修改 kingbase.conf 文件中 shared_preload_libraries
参数后重启数据库。
shared_preload_libraries = ''
70.6. 插件restricted_dba升级方法
restricted_dba扩展插件通常随着KingbaseES安装包一并升级。通常情况下用户无须单独升级这些插件。
71. roledisable
71.1. 插件roledisable简介
roledisable是KingbaseES的扩展插件。主要用在管理数据库的角色是否生效。可以在不删除角色的前提下,使本地库内使角色被禁用或者使禁用的的角色启用。
-
插件名为 roledisable
-
插件版本 V1.0
71.2. 插件roledisable加载方式
修改 kingbase.conf 文件中 shared_preload_libraries
参数,重启数据库时自动加载。
shared_preload_libraries = 'roledisable' \c - system create extension roledisable;
71.2.1. 查看角色状态
SYSTEM 可以通过roledisable.sys_role_status视图来查看系统所有角色在当前库内的启用/禁用状态。
SELECT * FROM roledisable.sys_role_status;
71.2.2. 字段说明
oid
角色在数据库内的ID。
rolename
角色在数据库内的名称。
status
角色的状态 Enable表示角色被启用,Disable 表示角色被禁用。
71.2.3. 启用角色
将角色设置为启用状态。
ALTER ROLE rolename ENABLE;
执行权限: 需要以系统管理员权限执行,以非系统管理员执行时报告错误。
角色要求:被启用的角色需事先存在。
新建角色:新创建的角色默认为启用状态。
71.2.4. 禁用角色
将角色设置为禁用状态。
ALTER ROLE rolename DISABLE; 执行权限:需要以系统管理员权限执行,以非系统管理员执行时报告错误。 角色要求:被禁用的角色需事先存在。 系统内置角色;系统内置角色无法被禁用。如初始化用户、sao、sso等无法被禁用。
71.2.5. 被禁用角色的表现
当角色被禁用后,断开权限继承关系,不能从该角色直接和间接继承权限,间接使用被禁用角色的权限时应该报角色被禁用或权限错误。
以SET ROLE 切换到被禁用的角色时报告错误。
当会话使用的系统管理员角色被禁用时,因系统管理员绕过权限检查因此不会对其造成权限的影响。
当前会话使用的非系统管理员角色被禁用时,被禁用角色对权限继承关系产生影响因缓存机制可能不会立即生效,当切换角色权限检查或重新登录后生效。
角色在使用期间被禁用时,以被禁用角色(非系统管理员)执行需检查权限的操作时,报当前角色被禁用错误。
角色被禁用状态下,可以修改角色权限和角色关系。如使用GRANT 和 REVOKE 对其操作,使用ALTER ROLE对其操作。
71.3. 插件roledisable的参数配置
无需配置任何参数。
71.4. 插件roledisable的使用方法¶
加载roledisable插件后,程序可以管理数据库的角色是否生效。可以在不删除角色的前提下,使本地库内使角色被禁用或者使禁用的的角色启用。
示例:
-- 创建插件 \c test system create extension roledisable; CREATE EXTENSION
71.5. 插件roledisable卸载方法
修改 kingbase.conf 文件中 shared_preload_libraries
参数后重启数据库。
shared_preload_libraries = ''
71.6. 插件roledisable升级方法
roledisable扩展插件通常随着KingbaseES安装包一并升级。通常情况下用户无须单独升级些插件。
72. rum
72.1. 插件rum简介
具体参考: RUM索引类型 章节。
-
插件名为 rum
-
插件版本 V1.3
72.2. 插件rum加载方式
CREATE EXTENSION rum;
72.3. 插件rum的参数配置
无需配置任何参数
72.4. 插件rum的使用方法
具体参考: RUM索引类型 章节。
72.5. 插件rum卸载方法
DROP EXTENSION rum;
72.6. 插件rum升级方法
通过 ALTER EXTENSION升级插件。
示例,升级到 1.1:
ALTER EXTENSION rum UPDATE TO '1.1';