VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

无权限角色导出数据

vb_dumpvb_dumpall通过-U指定执行导出的用户帐户。如果当前使用的帐户不具备导出所要求的权限时,会无法导出数据。此时,需先将具有权限的角色赋权给无权限角色,然后在导出命令中设置--role参数来指定具备权限的角色。在执行命令后,vb_dump和vb_dumpall会使用--role参数指定的角色,完成导出动作。

操作步骤

1、以安装Vastbase的操作系统用户(以vastbase为例)登录数据库主节点。

2、使用vb_dump导出human_resource数据库数据时-U指定用户为jack:

用户jack不具备导出数据库human_resource的权限,而角色role1具备该权限,要实现导出数据库human_resource,需要将role1赋权给jack,然后可以在导出命令中设置--role角色为role1,使用role1的权限,完成导出目的。导出文件格式为tar归档格式。

vb_dump -U jack -f /home/backup/MPPDB_backup.tar -p 5432 human_resource --role role1 --rolepassword  abc@1234 -F t
Password:

表 1 常用参数说明

参数

参数说明

举例

-U

连接数据库的用户名。

-U jack

-W

指定用户连接的密码。

  • 如果主机的认证策略是trust,则不会对数据库管理员进行密码验证,即无需输入-W选项。
  • 如果没有-W选项,并且不是数据库管理员,会提示用户输入密码。

-W abcd@123

-f

将导出文件发送至指定目录文件夹。如果这里省略,则使用标准输出。

-f /home//backup/MPPDB_backup.tar

-p

指定服务器所侦听的TCP端口或本地Unix域套接字后缀,以确保连接。

-p 5432

dbname

需要导出的数据库名称。

human_resource

--role

指定导出使用的角色名。选择该选项,会使导出工具连接数据库后,发起一个SET ROLE角色名命令。当所授权用户(由-U指定)没有导出工具要求的权限时,该选项会起到作用,即切换到具备相应权限的角色。

-r role1

--rolepassword

指定具体角色用户的角色密码。

--rolepassword abc@1234

-F

选择导出文件格式。-F参数值如下:

  • p:纯文本格式
  • c:自定义归档
  • d:目录归档格式
  • t:tar归档格式
  • 说明:
    vb_dumpall仅支持纯文本格式导出。

    -F t

    示例

    前置步骤:

    1、创建普通用户jack和具有管理员权限的用户role1。

    CREATE USER jack IDENTIFIED BY "1234@abc";
    CREATE ROLE role1 SYSADMIN PASSWORD 'Vastbase@123';
    

    2、将角色role1赋予用户jack。

    grant role1 to jack; 
    

    3、在操作系统中创建存放备份文件的目录。

    cd /home/vastbase
    mkdir bak
    

    示例1:

    执行vb_dump导出数据,用户jack不具备导出数据库vastbase的权限,而角色role1具备该权限,要实现导出数据库vastbase,可以在导出命令中设置--role角色为role1,使用role1的权限,完成导出目的。导出文件格式为tar归档格式。

    vb_dump -U jack -W "1234@abc" -f bak/MPPDB_backup11.tar -p 5432 vastbase --role role1 --rolepassword Vastbase@123 -F t
    

    上述语句等效于:

    vb_dump -U jack -f bak/MPPDB_backup11.tar -p 5432 vastbase --role role1 --rolepassword Vastbase@123 -F t
    

    执行上述命令后需要手动输入用户jack的密码。

    示例2:

    执行vb_dump导出数据,用户jack不具备导出模式public的权限,而角色role1具备该权限,要实现导出模式public,可以在导出命令中设置--role角色为role1,使用role1的权限,完成导出目的。导出文件格式为tar归档格式。

    vb_dump -U jack -f bak/MPPDB_backup12.tar -p 5432 vastbase -n public --role role1 --rolepassword Vastbase@123 -F t
    

    示例3:

    执行vb_dumpall导出数据,用户jack不具备导出所有数据库的权限,而角色role1(管理员)具备该权限,要实现导出所有数据库,可以在导出命令中设置--role角色为role1,使用role1的权限,完成导出目的。导出文件格式为文本归档格式。

    vb_dumpall -U jack -f bak/MPPDB_backup.sql -p 5432 --role role1 --rolepassword Vastbase@123