AWS Redshift 如何让新的table创建即自动赋予权限

我们先来解释一下这个题目:

在MySQL里面,如果我们运行如下权限语句,那么这个database/schema database1中,未来创建的表,默认也是会赋予select权限给user1的:

复制代码
grant select on database1.* to 'user1'@'%';

但是对于AWS Redshift来说,即便运行了:

复制代码
grant select on all tables in schema schema1 to user1;

对于schema1后续创建的future table,也不会默认赋予user1 select权限,需要每次创建了新的table以后手动grant权限。

Redshift这样设置的原因是,Redshift底层是与PostgreSQL 8版本兼容的,根据PostgreSQL官网,这个设置本身就是PostgreSQL对于权限的管理,而不是Redshift这个服务对于权限的特定设置。

那么如果我们希望像mysql一样,在Redshift内省去把新创建的table进行再次grant的步骤,我们可以用如下query来赋予权限:

复制代码
grant usage on schema schematest1 to user1;
alter DEFAULT PRIVILEGES in schema schematest1 grant select on tables to user1;
grant select on all tables in schema schematest1 to user1;

这样schematest1里面新创建的table就也默认对user1有select权限了。

这个权限也并不是Redshift本身的语法,而是PostgreSQL原生语法,详情如下:

PostgreSQL: Documentation: 17: ALTER DEFAULT PRIVILEGES

Redshift文档中也对这个alter default privleges进行了解释,文档列举如下:

ALTER DEFAULT PRIVILEGES - Amazon Redshift

相关推荐
-SGlow-6 小时前
MySQL相关概念和易错知识点(2)(表结构的操作、数据类型、约束)
linux·运维·服务器·数据库·mysql
明月5667 小时前
Oracle 误删数据恢复
数据库·oracle
数据与人工智能律师7 小时前
数字迷雾中的安全锚点:解码匿名化与假名化的法律边界与商业价值
大数据·网络·人工智能·云计算·区块链
在云上(oncloudai)7 小时前
AWS CAF:企业云转型的战略指南
aws
♡喜欢做梦8 小时前
【MySQL】深入浅出事务:保证数据一致性的核心武器
数据库·mysql
遇见你的雩风8 小时前
MySQL的认识与基本操作
数据库·mysql
dblens 数据库管理和开发工具8 小时前
MySQL新增字段DDL:锁表全解析、避坑指南与实战案例
数据库·mysql·dblens·dblens mysql·数据库连接管理
weixin_419658318 小时前
MySQL的基础操作
数据库·mysql
不辉放弃9 小时前
ZooKeeper 是什么?
数据库·大数据开发
Goona_10 小时前
拒绝SQL恐惧:用Python+pyqt打造任意Excel数据库查询系统
数据库·python·sql·excel·pyqt