Google sheets 从服务帐户重新获取所有权

Google sheets 从服务帐户重新获取所有权,google-sheets,gcloud,service-accounts,Google Sheets,Gcloud,Service Accounts,我已经将我的一张谷歌表单的所有权分配给了我正在从事的一个gcloud项目的一个服务帐户(我知道这不是一件明智的事情……)。如何将此工作表的所有权重新分配给我的主要用户帐户?如果您拥有服务帐户的权限(例如,您是GCP项目的所有者),则可以使用命令行工具作为服务帐户进行身份验证,并在那里修改权限 一步一步的过程(您可能已经完成了其中的一些步骤): : 在初始化过程中,按照以下步骤向GCP项目的帐户所有者进行身份验证,并选择有问题的项目。您可以忽略其余步骤 即文件的当前所有者(在此命令中更改服务帐户)

我已经将我的一张谷歌表单的所有权分配给了我正在从事的一个gcloud项目的一个服务帐户(我知道这不是一件明智的事情……)。如何将此工作表的所有权重新分配给我的主要用户帐户?

如果您拥有服务帐户的权限(例如,您是GCP项目的所有者),则可以使用命令行工具作为服务帐户进行身份验证,并在那里修改权限

一步一步的过程(您可能已经完成了其中的一些步骤):

  • :
  • 在初始化过程中,按照以下步骤向GCP项目的帐户所有者进行身份验证,并选择有问题的项目。您可以忽略其余步骤
  • 即文件的当前所有者(在此命令中更改服务帐户):
  • 破解SDK以包含驱动器作用域:
  • 激活服务帐户(在此命令中更改服务帐户):
  • 调用返回所有权的驱动器API(在此命令中更改驱动器文件ID和新所有者电子邮件地址):
  • 完成这些步骤后,您的常规电子邮件帐户将成为新的所有者


    这是一个非常糟糕的解决方案(黑客攻击SDK等),但它只有7个bash命令,所以我认为它可能是最快/最简单的解决方案,至少在一次性情况下是如此


    如果这种情况经常发生(我想不是),那么真正的脚本可能会更有用。

    如果您拥有服务帐户的权限(例如,您是GCP项目的所有者),您可以使用命令行工具作为服务帐户进行身份验证,并在那里修改权限

    一步一步的过程(您可能已经完成了其中的一些步骤):

  • :
  • 在初始化过程中,按照以下步骤向GCP项目的帐户所有者进行身份验证,并选择有问题的项目。您可以忽略其余步骤
  • 即文件的当前所有者(在此命令中更改服务帐户):
  • 破解SDK以包含驱动器作用域:
  • 激活服务帐户(在此命令中更改服务帐户):
  • 调用返回所有权的驱动器API(在此命令中更改驱动器文件ID和新所有者电子邮件地址):
  • 完成这些步骤后,您的常规电子邮件帐户将成为新的所有者


    这是一个非常糟糕的解决方案(黑客攻击SDK等),但它只有7个bash命令,所以我认为它可能是最快/最简单的解决方案,至少在一次性情况下是如此


    如果这种情况经常发生(我想不会),那么真正的脚本可能会更有用。

    您可以登录他们的帐户并重新分配给自己,或者制作一份副本并提醒每个人不要使用您分配的工作表?@codecamp您不能以服务帐户(通过常规工作表web界面)登录,但您可以作为服务帐户对API进行身份验证调用。您可以登录他们的帐户并重新分配给自己,或者制作一份副本并提醒所有人不要使用您分配的工作表?@codecamp您不能作为服务帐户登录(通过常规工作表web界面),但是,您可以作为服务帐户对API进行身份验证调用,这非常有效。起初,我无法理解您所说的驱动器文件ID是什么意思,但接下来,请注意:)谢谢!这非常有效。起初,我无法理解您所说的驱动器文件ID是什么意思,但接下来,请注意:)谢谢!
    curl https://sdk.cloud.google.com | bash
    exec -l $SHELL
    gcloud init
    
    gcloud iam service-accounts keys create key --iam-account service_account_id@project_id.iam.gserviceaccount.com
    
    sed -i 's/\(^CLOUDSDK_SCOPES = (\)/\1"https:\/\/www.googleapis.com\/auth\/drive",/' $(gcloud info --format 'value(installation.sdk_root)')/lib/googlecloudsdk/core/config.py
    
    gcloud auth activate-service-account service_account_id@project_id.iam.gserviceaccount.com --key-file key
    
    curl -H"Authorization: Bearer $(gcloud auth print-access-token)" https://www.googleapis.com/drive/v3/files/DRIVE_FILE_ID/permissions?transferOwnership=true -d '{"role":"owner","type":"user","emailAddress":"YOUR_EMAIL@example.com"}' -H'content-type:application/json'