【发布时间】:2022-10-21 18:01:01
【问题描述】:
我有一个 EMR 集群,我在其上运行 SparkSQL 作业以从 AWS Glue 目录 (S3) 获取数据,并且两者都存在于不同的账户中。
我的查询是以下形式:-
CREATE OR REPLACE VIEW employee AS
SELECT
pay.recordid,
pay.employeeid,
pay.amount,
pay.paycode,
pay.paydate,
pay.paycycle,
pay.updatetime
FROM database.table pay
WHERE
pay.partition_0 in (var1)
and pay.partition_1 in (var2)
and pay.partition_2 in (var3)
and paycode = 'P1'
AND paycycle = 'M'
AND country = 'test'
AND paydate = ( SELECT DISTINCT paydate FROM default.table2
WHERE CURRENT_DATE < DATE(paydate) AND CURRENT_DATE > DATE(payperiodstart)
AND paycycle = 'M')
AND amount > 0;
在 Glue Catalog 设置中,我还必须授予 Glue:CreateTable 和 Glue:DeleteTable 的权限。如果我删除它们,那么我的查询将失败,那么创建视图为什么需要这 2 个权限?我能否以某种方式删除这 2 个权限并仅使用这些权限运行查询: “胶水:GetDatabase”、“胶水:GetUserDefinedFunctions”、“胶水:GetTable”、“胶水:GetPartitions”
我这样说是因为它可能会带来安全风险。我是 Glue 帐户的所有者,并授予其他人只读权限,因此无法授予 DeleteTable 或 Create Table 权限。
【问题讨论】:
标签: apache-spark-sql amazon-iam aws-glue identity-management