Google bigquery 如何检索与BigQuery作业关联的用户和SQL代码?
出于安全目的,我希望能够审核谁在某个项目中运行什么类型的查询。这可能吗Google bigquery 如何检索与BigQuery作业关联的用户和SQL代码?,google-bigquery,google-cloud-platform,Google Bigquery,Google Cloud Platform,出于安全目的,我希望能够审核谁在某个项目中运行什么类型的查询。这可能吗 从命令行使用bq ls-j可以提供一些信息bg show-j提供了更多信息。但是既不显示用户也不显示查询本身。在CLI中,可以运行bq ls-j-a为项目中的所有用户检索作业 然后,您可以为每个作业id运行abq show-j,为了获得更多详细信息,您将选择使用json响应: bq show --format=prettyjson -j job_joQEqPwOiOoBlOhDBEgKxQAlKJQ 这将返回以下格式,其中
从命令行使用
bq ls-j
可以提供一些信息bg show-j
提供了更多信息。但是既不显示用户也不显示查询本身。在CLI中,可以运行bq ls-j-a
为项目中的所有用户检索作业
然后,您可以为每个作业id运行abq show-j
,为了获得更多详细信息,您将选择使用json响应:
bq show --format=prettyjson -j job_joQEqPwOiOoBlOhDBEgKxQAlKJQ
这将返回以下格式,其中包含已处理的查询、用户和字节等
{
"configuration": {
"dryRun": false,
"query": {
"createDisposition": "CREATE_IF_NEEDED",
"destinationTable": {
"datasetId": "",
"projectId": "",
"tableId": ""
},
"query": "",
"writeDisposition": "WRITE_TRUNCATE"
}
},
"etag": "",
"id": "",
"jobReference": {
"jobId": "",
"projectId": ""
},
"kind": "bigquery#job",
"selfLink": "",
"statistics": {
"creationTime": "1435006022346",
"endTime": "1435006144730",
"query": {
"cacheHit": false,
"totalBytesProcessed": "105922683030"
},
"startTime": "1435006023171",
"totalBytesProcessed": "105922683030"
},
"status": {
"state": "DONE"
},
"user_email": ""
}
使用API,您需要传递allUsers属性以列出所有用户的作业