【发布时间】:2021-08-05 12:56:48
【问题描述】:
我想使用 DML 查询会话用户名,例如:
SELECT user();
我已经阅读了 Presto 的 current_user 函数,但在 Athena 中不起作用。
我的目标是根据用户创建一个 where 子句...类似于:
SELECT *
FROM <mytable>
WHERE if(current_user=<some>, 'value', 'othervalue') = <column>
【问题讨论】:
-
不确定是否有内置功能,但也许您可以通过 user defined functions 实现某些功能
-
@GuruStron 看起来很有趣,我只是担心价格上涨
-
此信息似乎不可用。这可能是因为 Athena 不使用标准 Presto 身份验证,并且“用户”的概念在 AWS 中可以采用多种形式——IAM 用户、IAM 角色、STS 凭证等。我猜他们可以提供访问密钥,但它可能会在执行之间发生变化。要控制用户可以访问哪些数据,您可以管理他们对 Amazon S3 中对象的访问权限。 Athena 使用当前用户的访问权限,因此如果他们在 S3 中可以看到,他们可以在 Athena 中看到它。
标签: sql amazon-web-services amazon-athena