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的权限。

相关推荐
DashVector1 天前
向量检索服务 DashVector产品计费
数据库·数据仓库·人工智能·算法·向量检索
KYGALYX1 天前
在Linux中备份msyql数据库和表的详细操作
linux·运维·数据库
檀越剑指大厂1 天前
金仓KReplay:定义数据库平滑迁移新标准
数据库
努力成为一个程序猿.1 天前
【Flink】FlinkSQL-动态表和持续查询概念
大数据·数据库·flink
毕设十刻1 天前
基于Vue的学分预警系统98k51(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
wanhengidc1 天前
云手机的基本原理
运维·服务器·游戏·智能手机·云计算
liliangcsdn1 天前
如何利用约束提示优化LLM在问题转sql的一致性
数据库·sql
Java爱好狂.1 天前
分布式ID|从源码角度深度解析美团Leaf双Buffer优化方案
java·数据库·分布式·分布式id·es·java面试·java程序员
Elastic 中国社区官方博客1 天前
通过混合搜索重排序提升多语言嵌入模型的相关性
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
倔强的石头1061 天前
KingbaseES:从兼容到超越,详解超越MySQL的权限隔离与安全增强
数据库·mysql·安全·金仓数据库