如要限制專案或機構中使用者的存取權,可以使用資料庫遷移服務和相關目的地資料庫產品的身分與存取權管理 (IAM) 角色。您可以控管 Database Migration Service 相關資源的存取權,而不將整個 Google Cloud 專案的檢視者、編輯者或擁有者角色授予使用者。
本頁著重於詳細說明使用者和服務帳戶在透過資料庫遷移服務進行同質 Cloud SQL 遷移時,需要的所有角色。如要進一步瞭解在遷移程序中使用這些權限的時機,請參閱「 將 SQL Server 資料庫遷移至 SQL Server 適用的 Cloud SQL」。
執行遷移工作的帳戶
使用資料庫遷移服務執行資料遷移時,會涉及三個帳戶:
- 執行遷移作業的使用者帳戶
- 這是您用來登入的 Google 帳戶,可建立連線設定檔、將備份檔案上傳至 Cloud Storage 儲存空間,以及建立及執行遷移作業。
- 資料庫遷移服務服務帳戶
- 啟用資料庫遷移服務 API 時,系統會為您建立這個服務帳戶,並自動產生相關聯的電子郵件地址。該電子郵件地址無法變更,這個電子郵件地址的格式如下:
service-PROJECT_NUMBER@gcp-sa-datamigration.iam.gserviceaccount.com
- Cloud SQL 執行個體服務帳戶
- 這個服務帳戶會專門指派給目的地 SQL Server 適用的 Cloud SQL 執行個體,目的地執行個體建立後即會建立。您可以在 Cloud SQL 執行個體詳細資料頁面,查看與這個服務帳戶相關聯的電子郵件地址。詳情請參閱 SQL Server 適用的 Cloud SQL 說明文件中的「 View instance information」(查看執行個體資訊) 一文。
資料遷移程序中涉及的每個帳戶,都需要一組不同的角色和權限。
權限與角色
如要取得使用 資料庫遷移服務 執行同質 SQL Server 遷移作業所需的權限,請要求管理員在專案中,為下列帳戶授予必要的 IAM 角色:
- 執行遷移作業的使用者帳戶:
-
資料庫遷移管理員 (
roles/datamigration.admin) -
儲存空間管理員 (
roles/storage.admin) -
Cloud SQL 編輯者 (
roles/cloudsql.editor)
-
資料庫遷移管理員 (
- 資料庫遷移服務服務帳戶:
-
資料庫遷移管理員 (
roles/datamigration.admin) -
儲存空間管理員 (
roles/storage.admin) -
Cloud SQL 編輯者 (
roles/cloudsql.editor) -
Cloud SQL Studio 使用者 (
roles/cloudsql.studioUser)
-
資料庫遷移管理員 (
- Cloud SQL 執行個體服務帳戶:
Storage Object Viewer (
roles/storage.objectViewer)
如要進一步瞭解如何授予角色,請參閱「 管理存取權」。
這些預先定義的角色具備使用資料庫移轉服務,執行相同系統的 SQL Server 遷移作業所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要使用資料庫遷移服務執行同質 SQL Server 遷移作業,您必須具備下列權限:
- 執行遷移作業的使用者帳戶:
datamigration.*resourcemanager.projects.getresourcemanager.projects.listcloudsql.operations.getcloudsql.instances.createcloudsql.instances.getcloudsql.instances.listcloudsql.instances.importcloudsql.databases.getcloudsql.databases.listcloudsql.databases.deletecompute.machineTypes.listcompute.machineTypes.getcompute.projects.getstorage.buckets.createstorage.buckets.list
- 資料庫遷移服務服務帳戶:
datamigration.*resourcemanager.projects.getresourcemanager.projects.listcloudsql.instances.createcloudsql.instances.getcloudsql.instances.listcloudsql.instances.executeSqlstorage.objects.createstorage.objects.list
- Cloud SQL 執行個體服務帳戶:
storage.objects.liststorage.objects.get
您或許還可透過 自訂角色或其他 預先定義的角色取得這些權限。