Как узнать кто удаляет таблицу в логах - PullRequest
1 голос
/ 20 сентября 2019

У меня есть идентификатор набора данных, таблицы были созданы.Которые были удалены.Мне нужно проверить, кто и когда их удалил.

Ответы [ 2 ]

2 голосов
/ 20 сентября 2019

Вам необходимо включить Auditlogs Экспорт.

Существует много типов удалений:

  • удаление из пользовательского интерфейса / API
  • удаление с помощью QUERY (перезаписать в качестве таблицы назначения)
  • удаление с помощьюСОЗДАТЬ ИЛИ ЗАМЕНИТЬ синтаксис
  • автоматическое удаление выполняется по истечении срока действия

Здесь описан общий тип удалений:

Тип 1: вы выдали таблицу удаленных запросов /Вызов API и т. Д.

Затем вы можете выполнить запрос, например:

SELECT * FROM `dataset.cloudaudit_googleapis_com_activity_20190919` 
where resource.type='bigquery_resource' 
and protopayload_auditlog.methodName='tableservice.delete'

вы получите большую таблицу , которую нельзя разместить здесь какхорошее изображение, но в упрощенном виде JSON это здесь:

[
  {
    "logName": "projects/editedname/logs/cloudaudit.googleapis.com%2Factivity",
    "resource": {
      "type": "bigquery_resource",
      "labels": {
        "project_id": "editedname",
      }
    },
    "protopayload_auditlog": {
      "serviceName": "bigquery.googleapis.com",
      "methodName": "tableservice.delete",
      "resourceName": "projects/editedname/datasets/dataset/tables/industry2",
      "authenticationInfo": {
        "principalEmail": "something@domain.com",
        "authoritySelector": null,
        "serviceAccountKeyName": null,
        "serviceAccountDelegationInfo": []
      },
      "authorizationInfo": [
        {
          "resource": "projects/editedname/datasets/dataset/tables/industry2",
          "permission": "bigquery.tables.delete",
          "granted": "true",
          "resourceAttributes": null
        }
      ],
      "requestMetadata": {
        "callerIp": "1.2.3.4",
        "callerSuppliedUserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36,gzip(gfe)",
        "callerNetwork": null,
        "requestAttributes": null,
        "destinationAttributes": null
      },
    },
    "timestamp": "2019-09-19 08:47:00.381 UTC",
    "receiveTimestamp": "2019-09-19 08:47:00.590316 UTC",
    "severity": "NOTICE",
  }
]

Как вы можете видеть, у вас есть таблица, которая была удалена, например: industry2 в моем примере, также адрес электронной почты пользователя или учетной записи службы, идата, даже metadata звонящего по IP и userAgent.

Подробнее о доступной информации здесь

Тип 2: Вы сгенерировали запрос на переопределение таблицы или синтаксис CREATE OR REPLACE

Для такого рода «удалений» вы не найдете отдельную удаленную запись.Но вы можете посмотреть на «усеченный» флаг в metadataJson

enter image description here

0 голосов
/ 20 сентября 2019

Самый простой способ - в консоли GCP щелкнуть на вкладке «ACTIVITY», отфильтровать «Тип ресурса» по «Большой запрос» и найти запись «Удалить таблицу».Если щелкнуть запись, она развернется и покажет информацию об удалении вместе с учетной записью, которая произвела удаление.

...