【发布时间】:2020-05-18 14:28:34
【问题描述】:
我正在尝试自动化 Redshift 上的一些 SQL 查询,这些查询是由用户权限“触发”的。
查询只是使用customer_id 过滤器创建表视图,使用customer_id 创建用户并授予该customer_id 读取表视图的权限。这可以防止不同的客户看到彼此的数据,并且当我手动实现它时效果很好。
我面临的问题是自动执行此操作,因为我目前在 Redshift 中手动执行此操作。我想自动化这个给定的
我的考虑:
- Redshift - 不支持触发器。
- Lambda 触发器 - Lambda 不会从 Redshift 触发。
- API 网关 - “请求”也不是 API 调用,因此客户端不会为权限进行 API 调用(它们是非技术性的)。
- 气流 - 似乎是一个非常小的东西的大设置。但可以工作。
- Glue - 我目前正在使用 Glue 加载到 Redshift。也许我可以在工作流中添加一些东西来获得不同的 customer_id 列表,然后在 Redshift 上运行 SQL(通过工作流)?
请问您对此有何想法或建议?
【问题讨论】:
-
确切的问题是什么?是自动设置的能力,还是如何触发设置脚本?
-
@JohnRotenstein 都是问题所在,我想当我指的是“自动化”时,我指的是两个步骤。 :)
-
那么什么动作触发了整个过程呢?是在有人注册应用程序时吗?您是否允许外部人员(客户)直接访问您的数据库?这通常不是一个好主意,因为很难控制/限制他们在数据库中的操作。一种首选方法是授予对可以代表他们发出请求的 API 的访问权限。
-
@JohnRotenstein - 是数据库的外部人员。因此,我正在创建视图和用户,因此他们看不到彼此的数据。我建议了 API 路线,但公司拒绝了。数据有一个“customer_id”列,该列对外部客户来说是唯一的,它决定了“拆分”。
标签: amazon-web-services amazon-redshift airflow aws-glue