本文為您介紹如何創建自建 MySQL 數據庫實例的用戶,以及該用戶在數據遷移各階段需要具備的最小權限。
背景信息
自建 MySQL 數據庫實例的類型包括 VPC 內自建數據庫 和 公網 IP 自建數據庫。本文創建的自建數據庫用戶,用于創建自建數據庫實例類型的 MySQL 數據源時填寫 用戶名。
創建自建數據庫用戶
在創建 MySQL 數據源時,您可以直接選擇已經存在于數據庫的用戶作為數據遷移的用戶。建議您為數據遷移任務創建專屬的數據庫用戶并賦予必要的權限。
登錄 MySQL 數據庫。
使用
CREATE USER
語句創建一個新用戶。CREATE USER '<user_name>'@'<host_name>' IDENTIFIED BY '<user_password>';
參數
描述
user_name
待創建的用戶。
host_name
允許該用戶登錄的主機。如果允許該用戶從任意主機登錄數據庫,請使用百分號(%)。
user_password
待創建用戶的密碼。
例如,創建一個名為
test
的用戶,該用戶可以從任何主機登錄 MySQL 數據庫,登錄密碼設置為password
。CREATE USER 'test'@'%' IDENTIFIED BY 'password';
MySQL 數據庫作為源端的權限說明
數據庫用戶需要對待遷移的數據庫具備讀權限。如果是 MySQL 數據庫 V8.0,請額外賦予
SHOW VIEW
權限。GRANT SELECT ON <database_name>.* TO '<user_name>';
MySQL 數據庫增量同步時,數據庫用戶需要具備
REPLICATION CLIENT
、REPLICATION SLAVE
和SELECT *.*
權限。GRANT REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO '<user_name>' [WITH GRANT OPTION];GRANT SELECT ON *.* TO '<user_name>';
說明增量同步時,如果缺少源端所有表的讀權限,可能導致任務異常中斷。
WITH GRANT OPTION
為可選參數。
MySQL 數據庫作為目標端的權限說明
MySQL 數據庫作為目標端時,遷移用戶需要具備目標端數據庫的CREATE
、CREATE VIEW
、INSERT
、UPDATE
和DELETE
權限。
GRANT <privilege_type> ON <database_name>.<table_name> TO '<user_name>'@'<host_name>' [WITH GRANT OPTION];
參數 | 描述 |
privilege_type | 授予該賬號 |
database_name | 數據庫的名稱。如果要授予該賬號具備所有數據庫的操作權限,請使用星號(*)。 |
table_name | 表的名稱。如果要授予該賬號具備所有表的操作權限,請使用星號(*)。 |
user_name | 待授權的賬號。 |
host_name | 允許該賬號登錄的主機,如果允許該賬號從任意主機登錄,請使用百分號(%)。 |
WITH GRANT OPTION | 授予該賬號使用 |