当前位置: 首页 > 知识库问答 >
问题:

如何从cli为bigquery数据集创建服务帐户

祁飞扬
2023-03-14

我已经找到了如何为项目级别生成凭据的说明,但是没有明确的说明如何使用cli仅向特定数据集添加服务帐户。

我尝试创建服务帐户:

gcloud iam service-accounts create NAME

然后获取数据集:

bq show \
--format=prettyjson \
project_id:dataset > path_to_file

然后在访问部分添加一个角色

    {
      "role": "OWNER",
      "userByEmail": "NAME@PROJECT.iam.gserviceaccount.com"
    },

然后更新它。它似乎起作用了,因为我能够创建一个表,但随后我遇到了一个拒绝访问错误用户没有bigquery。乔布斯。当我尝试将数据加载到表中时,在project中创建权限。

当我在云控制台中检查项目时,似乎我的服务号被添加到项目中,而不是数据集,这不是我想要的,但也不能解释为什么我没有正确的权限。除了所有者权限,我尝试分配编辑器权限和管理员,这两个都没有解决问题。


共有1个答案

谭梓
2023-03-14

服务号不可能只拥有数据集级别的权限,然后运行查询。当调用查询时,它将创建一个作业。要创建作业,要使用的服务号应该在项目级别添加权限bigquery.jobs.create。有关运行作业所需的权限,请参阅文档。

考虑到这一点,需要添加bigquery。乔布斯。在项目级别创建,以便可以在共享数据集上运行查询。

注意:可以使用以下任何预定义角色,因为它们都具有bigquery.jobs.create

  • 角色/bigquery。用户
  • 角色/bigquery。作业用户
  • 角色/bigquery。管理员

在我的示例中,我使用了roles/bigquery。使用者请参见以下步骤:

  1. 创建新服务帐户(bq测试-sa@my-project.iam.gserviceaccount.com)
  2. 使用bq show--format=prettyjson my project:mydataset获取对我的数据集的权限
{
  "role": "OWNER",
  "userByEmail": "bq-test-sa@my-project.iam.gserviceaccount.com"
}, 

 类似资料:
  • 我试图使用Python和google cloud BigQuery datatransfer在BigQuery中创建一个新的数据传输作业,但遇到了错误: 谷歌。api_核心。例外情况。PermissionDenied:403用户没有足够的权限:bigquery。转移。需要对项目ID进行更新 我在下面加入了我的代码,这不是很有趣。我在设置。此服务帐户具有所有者状态,因为我认为提高其权限可能会使我通过

  • 我试图创建一个路由53记录集从帐户1在帐户2. 通过阅读其他帖子和在线搜索,我想做这样的事情: 想从有经验的人那里知道这是否是正确的方法吗?或者有没有更好的方法来实现上面? 更新代码如下:

  • 我试图创建一个共享驱动器(在谷歌驱动器),使用API v3(通过python客户端库google-api-python-Client)。下面的代码: 但出现了一个错误: GoogleapClient。错误。HttpError: 错误是直观的,但我的问题是关于我需要给API用户帐户的正确权限,因为: 这个用户不是个人帐户,但它是服务帐户,因为它在API中使用,应该为我的应用程序的每个客户创建一个共享

  • 我需要从不同的字典中创建一个熊猫数据框架,其中键必须作为数据框架内的列名。如果数据帧没有将键列为列,则必须动态创建键,并将其作为新列附加到数据帧。 我希望输入为, 输出应该是,, 循环的第一次迭代将键作为数据框的列名称,如果没有数据框,则创建值作为第一行的数据框。 第二次迭代检查键是否作为列出现在数据帧中,如果已经出现则插入,否则创建列并插入值作为第二行。 我确实不知道如何在python中动态运行

  • 为了访问GMail API(并将呼叫拟人化),我使用了一个服务帐户(从谷歌云平台创建)。我的json文件看起来像这样 我还使用oAuth2client库使其更容易,但我找不到创建凭据然后指定范围和委托帐户的方法。 我试过了 但是我得到了一个错误,因为它需要一个PKCS-8密钥。 我该怎么做?(如果有帮助,我的代码在应用程序引擎 Flex 上运行) 谢啦

  • 我正在创建一个通过EWS在Office 365 (Exchange online)中管理会议的应用程序。该应用程序应使用专用(服务)帐户,这将模拟组织者的帐户,并创建会议请求。该应用程序现在可以工作了,但我不确定在Office 365中创建服务帐户的最佳方式是什么,以及在这种情况下它需要的最低权限是什么。 目前,我在Office 365中创建了一个新用户,并在Exchange Admin中授予其<