金仓数据库 KingbaseES 插件backup_pri

目录

1. backup_pri插件介绍

2. 加载插件

3. 参数配置

4. 查询示例

5. 三个视图

6. 备份恢复权限流程

7. 备份恢复权限的授予与回收

参考资料



1. backup_pri插件介绍


backup_pri 是KingbaseES的一个扩展插件,主要用于对备份/恢复操作使用权限限制。
backup_pri插件增加了一个新的管理特权,SYSBACKUP,允许物理备份sys_basebackup连接到目标数据库,执行物理备份操作。

 

2. 加载插件


在使用 backup_pri 之前,需要将他添加到 kingbase.conf 文件的 shared_preload_libraries 中,并重启 KingbaseES 数据库。

shared_preload_libraries = 'backup_pri'


3. 参数配置


backup_pri.enable_backup_pri
启用备份恢复权限功能,取值范围为ture或者false,缺省为 false。

SHOW backup_pri.enable_backup_pri;
backup_pri.enable_backup_pri
-------------------------------
false
(1 row)

ALTER SYSTEM SET backup_pri.enable_backup_pri to on;
select pg_reload_conf();
SHOW backup_pri.enable_backup_pri;
backup_pri.enable_backup_prih
-------------------------------
t
(1 row)


4. 查询示例


如何赋予和收回这个新的权限用例。

create user test;
select * from sys_privilege;
userid | sysbackup
--------+-----------
16401 | f
(1 row)

alter user test sysbackup;
select * from sys_privilege;
userid | sysbackup
--------+-----------
16401 | t
(1 row)

alter user test nosysbackup;
select * from sys_privilege;
userid | sysbackup
--------+-----------
16401 | f
(1 row)

create user test1 sysbackup;
select * from sys_privilege;
userid | sysbackup
--------+-----------
16401 | f
16402 | t
(2 rows)

drop user test;
select * from sys_privilege;
userid | sysbackup
--------+-----------
16402 | t
(1 row)

drop user test1;
select * from sys_privilege;
userid | sysbackup
--------+-----------
(0 rows)


5. 三个视图


backup_pri.dba_sys_privs。

查询出所有的用户的sysbackup权限和其他系统权限,若用户没有sysbackup权限,有可能显示的是空,或者nosysbackup两种情况。

backup_pri.user_sys_privs。

查询出当前的用户的sysbackup权限和其他系统权限,若当前用户没有sysbackup权限,有可能显示的是空,或者nosysbackup两种情况。

backup_pri.role_sys_privs。

查询出角色的sysbackup权限和其他系统权限,若角色没有sysbackup权限,有可能显示的是空,或者nosysbackup两种情况。

backup_pri.dba_sys_privs视图的每个字段意义:

username | userid | superuser | inherit | createrole | createdb | canlogin | replication | bypassrls | sysbackup
----------+--------+-----------+---------+------------+----------+----------+-------------+------------+-----------
用户名 | 用户id | 超级用户 | 继承 | 创建角色 | 创建库 | 登录 | 流复制 | 安全测试RLS| 备份恢复

backup_pri.user_sys_privs视图的每个字段意义:
username | userid | superuser | inherit | createrole | createdb | canlogin | replication | bypassrls | sysbackup
----------+--------+-----------+---------+------------+----------+----------+-------------+-----------+-----------
用户名 | 用户id | 超级用户 | 继承 | 创建角色 | 创建库 | 登录 | 流复制 |安全测试RLS | 备份恢复

backup_pri.role_sys_privs视图的每个字段意义:
rolname | rolid | superuser | inherit | createrole | createdb | canlogin | replication | bypassrls | sysbackup
--------------------------+-------+-----------+---------+------------+----------+----------+-------------+-----------+-----------
角色名 | 用户id| 超级用户| 继承 | 创建角色 | 创建库 | 登录 | 流复制 |安全测试RLS| 备份恢复


6. 备份恢复权限流程


存储sysbackup权限的系统表 sys_privilege:

物理备份sys_basebackup时,检查否持有这个权限,若没有,报错退出。

具体流程如下:

(1)备份恢复权限与其他普通权限一样,都是限制一些用户进行指定的操作;

(2)备份恢复权限是用户级别的,在执行备份恢复时,步骤如下:

      检查当前用户是否对要备份还原的数据库有备份恢复的权限;

      ①检查备份恢复权限,才可以进行备份恢复的操作;

      ②无备份恢复权限,SYSTEM或SUPERUSER用户为其授予备份恢复权限。才可以执行备份恢复的操作。在执行备份恢复时,增加一项备份恢复的权限检查;

(3)权限名:SYSBACKUP/sysbackup


7. 备份恢复权限的授予与回收


权限的授予与回收:

在数据库初始化之后,SYSTEM用户级SUPERUSER用户不具有备份恢复的权限;但具有该权限的授予与回收的权利,SYSTEM用户级SUPERUSER用户也可以给自身赋权。

授予与回收的语法:

alter user u1 sysbackup;

Alter user u1 nosysbackup;

同时建用户的时候可以直接授予或回收:

Create user u1 sysbackup;

Create user u1 (nosysbackup);

不带默认nosysbackup,或者建库初始化时的用户也是默认nosysbackup的,想要赋予权限,可以用alter语句实现。

删除用户的时候语法:

Drop user u1;

会自动删除这个用户的备份恢复权限,和其他系统权限一样,记录将不存在。

参考资料

更多金仓数据库 KingbaseES 信息,详见 KingbaseES 产品手册

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值