使用 IAM 进行访问权限控制

如需限制项目或组织内用户的访问权限,您可以为 Database Migration Service 和相关目标数据库产品使用 Identity and Access Management (IAM) 角色。您可以控制对 Database Migration Service 相关资源的访问权限,而不是向用户授予整个 Google Cloud 项目的 Viewer、Editor 或 Owner 角色。

本页重点介绍了在使用 Database Migration Service 进行同质 Cloud SQL 迁移期间,用户账号和服务账号需要的所有角色。如需详细了解您在迁移过程中何时使用这些权限,请参阅 将 SQL Server 数据库迁移到 Cloud SQL for SQL Server

执行迁移作业所涉及的账号

使用 Database Migration Service 执行的数据迁移涉及三个账号:

执行迁移的用户账号
这是您用于登录的 Google 账号,您可以使用该账号创建连接配置文件、将备份文件上传到 Cloud Storage 存储空间,以及创建和运行迁移作业。
Database Migration Service 服务账号
这是在启用 Database Migration Service API 时,系统为您创建的服务账号。与此账号关联的电子邮件地址是自动生成的,无法更改。此电子邮件地址采用以下格式:
service-PROJECT_NUMBER@datamigration.iam.gserviceaccount.com
Cloud SQL 实例服务账号
这是专门分配给您的 Cloud SQL for SQL Server 目标实例的服务账号。系统会在您创建目标实例后创建此服务账号。您可以在 Cloud SQL 实例详情页面上查看与此服务账号关联的电子邮件地址。请参阅 Cloud SQL for SQL Server 文档中的 查看实例信息

参与数据迁移流程的每个账号都需要一组不同的角色和权限。

权限和角色

如需获得使用 Database Migration Service 执行同类 SQL Server 迁移所需的权限,请让您的管理员为以下账号授予项目的必要 IAM 角色:

如需详细了解如何授予角色,请参阅 管理访问权限

这些预定义角色包含使用 Database Migration Service 执行同质 SQL Server 迁移所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

若要使用 Database Migration Service 执行同构 SQL Server 迁移,您需要具备以下权限:

  • 执行迁移的用户账号:
    • datamigration.*
    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • cloudsql.operations.get
    • cloudsql.instances.create
    • cloudsql.instances.get
    • cloudsql.instances.list
    • cloudsql.instances.import
    • cloudsql.databases.get
    • cloudsql.databases.list
    • cloudsql.databases.delete
    • compute.machineTypes.list
    • compute.machineTypes.get
    • compute.projects.get
    • storage.buckets.create
    • storage.buckets.list
  • Database Migration Service 服务账号:
    • datamigration.*
    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • cloudsql.instances.create
    • cloudsql.instances.get
    • cloudsql.instances.list
    • cloudsql.instances.executeSql
    • storage.objects.create
    • storage.objects.list
  • Cloud SQL 实例服务账号:
    • storage.objects.list
    • storage.objects.get

您也可以使用 自定义角色或其他 预定义角色来获取这些权限。