PG数据恢复must be member of role “xxxx“

        背景:有一份数据库备份文件,sql语句中包含了drop语句。postgresql数据中有一个模式:test_schema,owner是test_schema_onwer。有另外一个用户test_username2。test_username2具有test_schema的所有权限。

        test_username2才是操作test_schema的用户。

        现在使用test_username2登录,并执行恢复备份语句。然后出现了must be member of role "xxxx"。

        原因:只有模式的owner才能删除表和创建索引。

        解决办法:将test_schema的owner权限从test_schema_onwer改为test_username2。

实现:

先使用test_schema_onwer登录数据库:

-- 查看用户关系
postgres=> \duList of rolesRole name    |                         Attributes                         | Member of 
-----------------+------------------------------------------------------------+-----------coremanage      | Create role                                                | {}coremanagetest1 |                                                            | {}postgres        | Superuser, Create role, Create DB, Replication, Bypass RLS | {}-- 查看所有模式的owner
postgres=> \dnList of schemasName      |   Owner    
----------------+------------core_manage_db | postgrespublic         | postgrestest_schema    | coremanage
(3 rows)-- 将 coremanagetest1  加入到 coremanage      
postgres=> grant coremanage to coremanagetest1 ;
GRANT ROLE
postgres=> \duList of rolesRole name    |                     Attributes                         |  Member of   
-----------------+--------------------------------------------------------+--------------coremanage      | Create role                                            | {}coremanagetest1 |                                                        | {coremanage}postgres        | Superuser, Create role, Create DB, Replication, Bypass RLS | {}-- 切换coremanagetest1 登录postgres=> \c postgres coremanagetest1;
You are now connected to database "postgres" as user "coremanagetest1".
-- 修改owner
postgres=> alter schema test_schema owner to coremanagetest1; 
ALTER SCHEMA-- 查看权限postgres=> \dnList of schemasName      |      Owner      
----------------+-----------------core_manage_db | postgrespublic         | postgrestest_schema    | coremanagetest1
(3 rows)

这样就可以修改过来了

如果这时候需要收回coremanage的coremanagetest1权限。只需要在切换到coremanage登录然后执行:

revoke coremanage from coremanagetest1;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/82694.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GO学习之 远程过程调用(RPC)

GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 10、GO学习之 网络通信(Net/Htt…

SqlBulkCopy - 批量写入数据库

SqlBulkCopy 是 ADO.NET 中的一种类,它提供了高性能的批量数据插入功能。SqlBulkCopy 类位于 System.Data.SqlClient 命名空间中,并且适用于使用 SQL Server 数据库。 ADO.NET 是 Microsoft .NET Framework 的一部分,提供了与数据存储的连接…

怎么为Web服务器配置虚拟主机?【步骤演示】

在安装了Web服务器Apache后,为了更好地使用Apache,还需要学习如何对Apache进行配置。在项目开发中,经常需要配置虚拟主机和访问权限,下面对Web服务器的配置进行详细讲解。 配置虚拟主机 在默认情况下,Apache只有Chwe…

Java手写双向广度优先和双向广度优先应用拓展案例

Java手写双向广度优先和双向广度优先应用拓展案例 1. 算法思维 思维如下: 双向广度优先搜索算法 (Bidirectional Breadth-First Search)1. 初始化起始节点和目标节点的队列和访问集合 2. 初始化起始节点和目标节点的距离为0 3. 初始化起始节点和目标节点的父节点…

ssh服务登录原理与配置

文章目录 前言一、基于口令的认证(用户名密码)二、基于公钥的认证(免密登录)三、禁止用户登录和修改端口四、免密登录具体操作 前言 非对称加密是在认证用户连接的时候使用的,对称加密是在用户连接之后开始传输数据的…

高端知识竞赛中用到的软件和硬件有哪些

现在单位搞知识竞赛,已不满足于用PPT放题,找几个简单的抢答器、计分牌弄一下了,而是对现场效果和科技感要求更高了。大屏要分主屏侧屏,显示内容要求丰富炫酷;选手和评委也要用到平板等设备;计分要大气些&am…

ES6(三)

文章目录 Promise概念作用回调地狱Promise使用对象的状态Promise.allPromise.race Generator 函数概念基本语法异步流程 Class语法类的写法getter与setter静态属性和静态方法继承模块化 Promise 概念 Promise 是异步编程的一种解决方案,比传统的解决方案回调函数,…

【JavaEE】多线程案例-单例模式

文章目录 1. 前言2. 什么是单例模式3. 如何实现单例模式3.1 饿汉模式3.2 懒汉模式4. 解决单例模式中遇到的线程安全问题4.1 加锁4.2 加上一个判断解决频繁加锁问题4.2 解决因指令重排序造成的线程不安全问题 1. 前言 单例模式是我们面试中最常考到的设计模式。什么是设计模式呢…

苹果电脑 m1 apple silican docker 安装 redis 6.2

安装环境: 苹果电脑,m1, apple silican, 系统版本13.5.2,32G内存 docker版本:4.15.0 redis版本:6.2,arm 64位 (https://hub.docker.com/) redis.conf 下载地址:https://redis.io/docs/manag…

JS+jQuery常用方法笔记

1、如何为一个按钮添加点击事件&#xff1f; 例&#xff1a;按钮一&#xff1a; <a class"layui-btn btnOne">按钮一</a>为其添加点击事件&#xff1a;方法一&#xff1a; $("#btnOne").click(function (e) {alert(111); });方法二&#xff…

准备篇(三)Python 爬虫第三方库

第三方库无法将 "pip" 识别ModuleNotFoundError: No module named pip install 安装路径相关问题requests 库和 BeautifulSoup 库requests 库BeautifulSoup 库第三方库 Python 的 标准库 中提供了许多有用的模块和功能,如字符串处理、网络通信、多线程等,但它们并…

(2023 最新版)IntelliJ IDEA 下载安装及配置教程

IntelliJ IDEA下载安装教程&#xff08;图解&#xff09; IntelliJ IDEA 简称 IDEA&#xff0c;由 JetBrains 公司开发&#xff0c;是 Java 编程语言开发的集成环境&#xff0c;具有美观&#xff0c;高效等众多特点。在智能代码助手、代码自动提示、重构、J2EE 支持、各类版本…

IntelliJ IDEA使用——插件推荐

官网插件库&#xff1a;https://plugins.jetbrains.com/search 代码规范检测&#xff1a;Alibaba Java Coding Guidelines码云&#xff1a;Giteemybatis插件&#xff1a;MyBatisX多颜色括号&#xff1a;Rainbow Brackets操作快捷键提示&#xff1a;Key Promoter X力扣&#xff…

leetcode做题笔记144. 二叉树的前序遍历

给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 思路一&#xff1a;递归 c语言解法 void preorder(struct TreeNode* root, int* res, int* resSize) {if (root NULL) {return;}res[(*resSize)] root->val;preorder(root->left, res, resSize);pr…

ES6 特性

一、ES6 1.1 ES6 概念 1.1.1 什么是 ES ES 全称 EcmaScript 是脚本语言的规范JavaScript 是 EcmaScript 的一种实现ES 新特性就是指 JavaScript 的新特性 1.1.2 为什么要使用 ES 语法简单&#xff0c;功能丰富框架开发应用前端开发职位要求 1.1.3 为什么要学习 ES6 ES6 …

时间序列分析1--生成和导出时间序列数据

时间序列数据的生成 直接录入 1.行录入 ts.(price,startc(2015,1),frequency 12) # price为时间序列变量&#xff0c;start为起始读入时间 frequncy指定每年读入的数据的频率&#xff0c;frequncy4为季度数据、frequncy52为星期数据 2.列录入 scan() 1:101 ....6:7 7:…

stm32 串口发送和接收

串口发送 #include "stm32f10x.h" // Device header #include <stdio.h> #include <stdarg.h>//初始化串口 void Serial_Init() {//开启时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Pe…

FiddlerScript 脚本使用正则表达式替换响应内容

使用 Fiddler 进行抓包时&#xff0c;对特定 url 接口响应内容进行部分匹配替换处理&#xff0c;可以在 FiddlerScript 的 OnBeforeResponse 事件中编写代码来完成。 本文如下代码示例是对某接口请求中的特定内容进行替换处理&#xff0c;如下&#xff1a; static function On…

QString类型的小数转Int类型

QString t "555.5"; double tt t.toInt(); // 将字符串转换为浮点数 // 现在 tt 的值应该为 0 在执行 t.toInt() 时&#xff0c;返回的结果为0&#xff0c;而不是预期的555。这是因为 toInt() 函数在将字符串转换为整数时遇到了非法字符。 toInt() 函数是 QStrin…

消息中间件介绍

消息中间件利用高效可靠的消息传递机制进行异步的数据传输&#xff0c;并基于数据通信进行分布式系统的集成。通过提供消息队列模型和消息传递机制&#xff0c;可以在分布式环境下扩展进程间的通信。ActiveMQ、RabbitMQ、ZeroMQ 消息中间件的作用 解耦&#xff1a; 冗余〈存储…