【问题标题】:Which users are accessing BigQuery tables哪些用户正在访问 BigQuery 表
【发布时间】:2015-11-18 14:52:54
【问题描述】:

我正在尝试找出哪些用户正在访问我们项目中的不同 BigQuery 表。我在 BQ 文档中找不到任何引用此内容的内容。 Internet 上的许多搜索都失败了,因为人们使用 BQ 来处理其他应用程序的日志。我找不到任何关于 BQ 日志的提及。

【问题讨论】:

标签: google-bigquery


【解决方案1】:

您应该使用作业列表 API - https://cloud.google.com/bigquery/docs/reference/v2/jobs/list

列出您在指定项目中启动的所有作业。工作 信息在创建后的六个月内可用。这 工作列表按创建工作的时间倒序排列 时间。需要 Can View 项目角色或 Is Owner 项目角色 如果你设置了 allUsers 属性。

User_email 属性是您正在寻找的 - 当然还有所有其他好东西

api请求时请注意allUsers参数

工作列表可用后,您应该查找 jobs.configuration.query.query 此属性是用户已运行的查询文本。 如果您正在寻找特定的表,您可以编写相对简单的匹配(使用 REGEXP_MATCH - https://cloud.google.com/bigquery/query-reference#regularexpressionfunctions)逻辑来过滤那些查询您感兴趣的表的人

【讨论】:

  • 不过,这有一个令人沮丧的弱点。作业 API 仅返回从项目上下文中执行的那些作业。换句话说,如果您与其他人共享一个数据集,并且他们从不同项目的上下文中查询它(他们总是可以这样做),您将不会获得该查询的记录。很想得到谷歌的官方答复。 @Felipe Hoffa?
  • 同意。此方法仅适用于从您的项目中发出的查询。怀疑您可以看到不是您的项目的活动!很高兴,但这将是某种“侵犯隐私”。很高兴收到 Google 团队的来信。
  • BigQuery 目前不提供此功能,但我们正在努力解决!敬请期待。
  • @MikhailBerlyant -- 对于某些类型的数据(如受保护的健康信息)来说,不仅仅是“拥有”,在上下文中,政策或法规要求所有访问都被记录和报告。 :-(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-27
  • 2010-12-03
  • 2013-06-20
  • 1970-01-01
相关资源
最近更新 更多