Data Transmission Service支援遷移源庫帳號的功能。針對需要遷移資料庫帳號的情境,您可以在配置同步或遷移任務過程中啟用帳號遷移功能,協助您方便快捷地將源庫的帳號(包含密碼和許可權)遷移至目標庫。
背景資訊
在您將源庫的資料同步或遷移到目標庫後,源庫中的帳號往往需要手動在目標庫中建立和授權。手動在目標庫建立帳號需要有相關資料庫的專業知識、耗費時間較多、容易遺漏等缺點,可能會導致業務受阻。
前提條件
配置任務使用的源和目標庫帳號滿足要求,具體要求請參見資料庫帳號要求的權限。
使用DTS同步或遷移資料的庫表結構。即在配置任務對象及高級配置階段中,同步類型勾選了庫表結構同步或者遷移類型勾選了庫表結構遷移。
注意事項
當前僅MySQL執行個體間的同步或遷移、MySQL執行個體同步或遷移到PolarDB MySQL版叢集、PolarDB MySQL版叢集間的同步或遷移執行個體,支援將源庫的帳號遷移至目標庫。
重要MySQL執行個體含RDS MySQL和自建MySQL。
目標RDS MySQL執行個體為5.6版本時,不支援遷移帳號。
暫不支援MySQL 8.0的動態許可權遷移。
若目標庫為RDS MySQL執行個體,由於RDS MySQL產品的限制,不支援遷移包含RELOAD、CREATE TABLESPACE、FILE或ALL PRIVILEGES許可權的帳號。
系統帳號(如root、mysql.infoschema、mysql.session、mysql.sys等)和內建帳號不支援遷移至目標庫。若您勾選了系統帳號或內建帳號,則會導致DTS執行個體報錯
Access denied for user 'XXXX'
。目標庫中已存在的帳號不支援遷移。如果重啟任務或者存在多個任務導致目標庫已存在待遷移的帳號,在執行個體結構遷移模組的User_Privilege頁簽會顯示帳號已遷移成功,且在相應的建立文法中會有注釋
user already exists
。未經授權的帳號不支援遷移。
遷移帳號時不支援重設帳號密碼。
若遷移的帳號為高許可權帳號,遷移至目標庫後將會變為無授權資料庫的普通帳號。
資料庫帳號要求的權限
若您需要遷移來源資料庫中的帳號,則配置任務過程中使用的資料庫帳號有如下要求(高許可權帳號滿足要求):
帳號 | 許可權 | 授權方式 |
來源資料庫帳號 | 中繼資料表mysql.user、mysql.db、mysql.columns_priv、mysql.tables_priv的SELECT許可權。 | 使用高許可權帳號,分別在源庫和目標庫中執行如下命令進行授權: 源庫
目標庫
說明 命令中的 |
目標資料庫帳號 | CREATE USER許可權、GRANT OPTION許可權和中繼資料表mysql.user的SELECT許可權 |
操作步驟
常見問題
為什麼無法選中帳號?
可能是該帳號為系統帳號,或者目標庫中已存在同名的帳號。
為什麼帳號名稱列表中沒有帳號?
可能是由於任務中配置的帳號許可權不足,您需要確保源庫和目標庫的帳號均滿足要求。