【问题标题】:Is there a way to query select username on Amazon Athena?有没有办法在 Amazon Athena 上查询选择用户名?
【发布时间】: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


【解决方案1】:

Athena 是一种查询服务,可以使用标准 SQL 语法轻松分析存储在 Amazon S3 存储桶中的大量数据,如下所述:

Amazon Athena – Interactive SQL Queries for Data in Amazon S3

【讨论】:

  • 嗨@smac2020,谢谢。 SELECT current_date; 呢?我的意思是查询当前的用户名信息,因为它需要经过身份验证才能查询一些东西
  • 您是否使用 Amazon Athena 服务客户端查询 S3 存储桶中的数据?
  • 是的,我需要通过编写 where 子句来根据用户进行过滤来创建 RLS。
  • 你能在你的问题中发布你的代码示例吗?它将帮助社区准确了解您要做什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-21
  • 2023-03-30
  • 2021-09-20
  • 2014-06-03
  • 2018-07-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多