• 金仓数据库 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';
  • 相关阅读:
    React - 路由 NavLink 使用 与 NavLink 组件封装使用(路由高亮)
    A. Sum
    c++运算符重载
    顺序存储二叉树 [数据结构与算法][Java]
    项目管理,如何做到流程标准化?
    使用sysctl调优Linux内核
    Windows下Nacos安装和下载
    OpenStack集群部署——计算节点neutron节点部署(三)
    结构性货币政策工具详解:碳减排支持工具、支小再贷款、再贴现等
    七大排序算法——归并排序
  • 原文地址:https://blog.csdn.net/arthemis_14/article/details/126603955