如何在Big查询中的所有项目中查找表名和创建者列表?

问题描述 投票:0回答:2

我是谷歌云平台的新手。是否有任何大查询元数据可以帮助我提取跨项目的表的创建者信息

google-cloud-platform google-bigquery
2个回答
0
投票

基于您的问题,最好的方法是使用dataset.get API(注意:在本页的右侧,您可以在线测试此API并更新响应)

这是curl的例子:

curl \
  'https://www.googleapis.com/bigquery/v2/projects/myProject/datasets/myDataset' \
  --header 'Authorization: Bearer [YOUR_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \
  --compressed

这是一个响应示例:

HTTP/1.1 200 
date: Tue, 12 Mar 2019 14:06:32 GMT
content-encoding: gzip
server: ESF
etag: A2pgT+O4eOxI3zU6LIqmtA==
content-type: application/json; charset=UTF-8
vary: Origin, X-Origin, Referer
cache-control: private
content-length: 386

{
  "kind": "bigquery#dataset",
  "etag": "A2pgT+O4eOxI3zU6LIqmtA==",
  "id": "project:dataset",
  "selfLink": "https://content.googleapis.com/bigquery/v2/projects/myproject/datasets/myDataset",
  "datasetReference": {
    "datasetId": "dataset",
    "projectId": "project"
  },
  "access": [
    {
      "role": "WRITER",
      "specialGroup": "someone"
    },
    {
      "role": "OWNER",
      "specialGroup": "someOwner"
    },
    {
      "role": "OWNER",
      "userByEmail": "another"
    }
  ],
  "creationTime": "1506249702559",
  "lastModifiedTime": "1527488177221",
  "location": "US"
}

0
投票

BigQuery表不会报告有关原始资源创建者的元数据,可以通过tables.list扫描它们,也可以检查Web UI中可以获取当前访问权限的ACL。如果您的用例将创建者作为表的唯一所有者,您可以考虑使用它。

另一种方法是使用审计日志。您可以使用此过滤器搜索记录:

resource.type="bigquery_resource"
logName="projects/YOUR_PROJECT/logs/cloudaudit.googleapis.com%2Factivity"
protoPayload.methodName="tableservice.insert"

它应该为您提供所有表创建活动以及谁请求它。

© www.soinside.com 2019 - 2024. All rights reserved.