金仓数据库 KingbaseES 插件参考手册 R

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';
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值