ITPub博客

首页 > 数据库 > 数据库开发技术 > openGauss学习笔记-161 openGauss 数据库运维-备份与恢复-导出数据-导出所有数据库-无权限角色导出数据

openGauss学习笔记-161 openGauss 数据库运维-备份与恢复-导出数据-导出所有数据库-无权限角色导出数据

原创 数据库开发技术 作者:shuchaoyang 时间:2023-09-11 07:00:00 0 删除 编辑

openGauss学习笔记-161 openGauss 数据库运维-备份与恢复-导出数据-使用gs_dump和gs_dumpall命令导出数据-导出所有数据库-无权限角色导出数据161.1 无权限角色导出数据161.2 操作步骤161.3 示例

openGauss学习笔记-161 openGauss 数据库运维-备份与恢复-导出数据-使用gs_dump和gs_dumpall命令导出数据-导出所有数据库-无权限角色导出数据

161.1 无权限角色导出数据

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

161.2 操作步骤

  1. 以操作系统用户omm登录数据库主节点。

  2. 使用gs_dump导出human_resource数据库数据。

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

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

    表 1 常用参数说明

    其他参数说明请参见《工具与命令参考》中“服务端工具 > gs_dump”章节或“服务端工具 > gs_dumpall”章节。

161.3 示例

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

human_resource=# CREATE USER jack IDENTIFIED BY "XXXXXXXX";
CREATE ROLE
human_resource=# GRANT role1 TO jack;
GRANT ROLE

gs_dump -U jack -f /home/omm/backup/MPPDB_backup11.tar -p 8000 human_resource --role role1 --rolepassword abc@1234 -F t
Password:
gs_dump[port='8000'][human_resource][2017-07-21 16:21:10]: dump database human_resource successfully
gs_dump[port='8000'][human_resource][2017-07-21 16:21:10]: total time: 4239 ms

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

human_resource=# CREATE USER jack IDENTIFIED BY "XXXXXXXX";
CREATE ROLE
human_resource=# GRANT role1 TO jack;
GRANT ROLE

gs_dump -U jack -f /home/omm/backup/MPPDB_backup12.tar -p 8000 human_resource -n public --role role1 --rolepassword abc@1234 -F t
Password:
gs_dump[port='8000'][human_resource][2017-07-21 16:21:10]: dump database human_resource successfully
gs_dump[port='8000'][human_resource][2017-07-21 16:21:10]: total time: 3278 ms

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

human_resource=# CREATE USER jack IDENTIFIED BY "XXXXXXXX";
CREATE ROLE
human_resource=# GRANT role1 TO jack;
GRANT ROLE

gs_dumpall -U jack -f /home/omm/backup/MPPDB_backup.sql -p 8000 --role role1 --rolepassword abc@1234
Password:
gs_dumpall[port='8000'][human_resource][2018-11-14 17:26:18]: dumpall operation successful
gs_dumpall[port='8000'][human_resource][2018-11-14 17:26:18]: total time: 6437 ms


👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!


原文作者:超哥的IT私房菜;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论
专注于IT系统集成、运维、架构二十年的IT职场老兵,拥有CCNA、OCA、OCP、PGCA、PGCE认证证书,公众号:超哥的IT私房菜,知识星球:超哥的IT私房菜,目前是多家IT厂商的咨询顾问。

注册时间:2021-08-27

  • 博文量
    552
  • 访问量
    303730