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

相关推荐
MetaLite2 小时前
SpringBoot接口分层规范-外网网关内部服务与参数边界
java·数据库·spring boot
Wang's Blog4 小时前
Java框架快速入门: Spring Security+OAuth2之元注解简化权限表达式
java·数据库·spring
蓝速科技6 小时前
医院导诊 AI 数字人一体机场景适配与落地指南丨蓝速科技
运维·数据库·人工智能·科技·自然语言处理·技术分享
QYR-分析6 小时前
重轨受电弓行业深度报告:市场格局、技术迭代与发展前景
大数据·数据库·人工智能
泡泡鱼(敲代码中)6 小时前
MySQL基础学习笔记:从数据模型到DDL全掌握
开发语言·数据库·笔记·学习·mysql
l1t7 小时前
DeepSeek总结的chdb-core v26.7.3发版说明
数据库·clickhouse·oracle
冰暮流星8 小时前
mysql之表子查询
数据库·mysql
小马同学-8 小时前
OpenStack 使用实战:Web 界面与 CLI 命令行实验
运维·云计算·openstack
Full Stack Developme8 小时前
CRM相关库表设计
数据库
步行cgn8 小时前
Spring 注入 Map 集合详解
数据库·python·spring