当前位置: 首页 > news >正文

AWS Redshift把老用户权限赋予新用户

问题描述:

Redshift内已经有了一个user A,不知道赋予了A什么权限,希望将所有权限都赋予User B。

分析过程 及 测试:

在此为大家提供如下github上两个script,是很有用的:

1. 这个脚本可以帮忙把一个user所拥有的所有的object找到:

https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_find_dropuser_objs.sql

2. 这个脚本可以把一个user或者group具有的所有的权限,并生成一个可以在drop user以前去掉所有权限的ddl query集合:

amazon-redshift-utils/src/AdminViews/v_generate_user_grant_revoke_ddl.sql at master · awslabs/amazon-redshift-utils · GitHub

通过上面第二个脚本为例,我们测试如下:

建议运行时将第一行CREATE OR REPLACE VIEW admin.v_generate_user_grant_revoke_ddl 改为了 public.v_generate_user_grant_revoke_ddl

dev=# select ddl from public.v_generate_user_grant_revoke_ddl where grantee='root1';ddl
-------------------------------------------------------------------------------------------GRANT ALL on public.t2 to root1;GRANT ALL on schema public to root1;GRANT ALL on schema dict to root1;ALTER DEFAULT PRIVILEGES for user root in schema public GRANT SELECT  on tables to root1;REVOKE ALL on public.t2 FROM root1;REVOKE ALL on schema public FROM root1;REVOKE ALL on schema dict FROM root1;ALTER DEFAULT PRIVILEGES for user root in schema public REVOKE ALL on tables FROM root1;
(8 rows)

这个脚本是用来查看Grantee(root1) 的全部privilege并进行revoke的。我们可以用这个脚本,将user A的权限寻找出来,并在ddl编辑中替换成B,这样可以直接运行这个view产生的ddl,给B赋予所有A的权限。

相关文章:

  • 计算机毕业设计 基于爬虫与文本挖掘的网络舆情监控系统的设计与实现 Python+Django+Vue 前后端分离 附源码 讲解 文档
  • \?拉普拉斯到底在讲什么\?控制理论\?倒立摆/
  • 如何选择与运用工具提升工作效率的秘密指南
  • 【自动化测试】Appium Server如何安装和Appium Server安装困难的原因和解决方法以及常见的一些安装失败的错误和解决方法
  • FFmpeg源码:avio_seek函数分析
  • 【Linux 23】线程池
  • golang fmt.Sprintf 引用前述变量
  • 远程服务器安装anaconda并创建虚拟环境
  • Mybatis的基本使用
  • SSTI基础
  • “大数据+高职”:VR虚拟仿真实训室的发展前景
  • 动态库的加载全过程
  • 深入浅出MySQL事务处理:从基础概念到ACID特性及并发控制
  • Ubuntu24.04.1系统下VideoMamba环境配置
  • Certbot自动申请并续期https证书
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • “大数据应用场景”之隔壁老王(连载四)
  • 10个最佳ES6特性 ES7与ES8的特性
  • css布局,左右固定中间自适应实现
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Otto开发初探——微服务依赖管理新利器
  • 简析gRPC client 连接管理
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 如何实现 font-size 的响应式
  • 如何学习JavaEE,项目又该如何做?
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 再次简单明了总结flex布局,一看就懂...
  • # Apache SeaTunnel 究竟是什么?
  • #考研#计算机文化知识1(局域网及网络互联)
  • (03)光刻——半导体电路的绘制
  • (1)无线电失控保护(二)
  • (16)Reactor的测试——响应式Spring的道法术器
  • (Python) SOAP Web Service (HTTP POST)
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (回溯) LeetCode 131. 分割回文串
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (六)软件测试分工
  • (七)Flink Watermark
  • (十)T检验-第一部分
  • (一)springboot2.7.6集成activit5.23.0之集成引擎
  • (游戏设计草稿) 《外卖员模拟器》 (3D 科幻 角色扮演 开放世界 AI VR)
  • (转)socket Aio demo
  • (转)一些感悟
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)
  • *1 计算机基础和操作系统基础及几大协议
  • *Django中的Ajax 纯js的书写样式1
  • .apk 成为历史!
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .Net Core 中间件验签
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .NET 中使用 Mutex 进行跨越进程边界的同步