DMS支持細粒度(庫、表、列、視圖等)級別的MySQL數據庫賬號權限管控。本文向您介紹如何在DMS中管理MySQL數據庫賬號權限。
前提條件
數據庫類型為RDS MySQL、PolarDB MySQL版、AnalyticDB for MySQL、自建MySQL、MariaDB或RDS MariaDB。
您的用戶角色為管理員、DBA或普通用戶(實例Owner),更多信息,請參見系統角色。
已獲取目標數據庫的數據庫賬號和數據庫密碼。
功能介紹
您可以在RDS MySQL、PolarDB MySQL版控制臺上對數據庫大分類組合權限(例如只讀、讀寫、僅DML、僅DDL)進行便捷地管理與維護,但對于自定義各種權限類型組合或授予某些表級別權限等場景,您可以通過DMS推出的數據庫賬號權限管理功能進行靈活管控。例如:
創建賬號
- 登錄數據管理DMS 5.0。
登錄目標數據庫,詳情請參見登錄數據庫。
單擊首頁左側的數據庫實例,在實例列表中右鍵單擊目標實例名稱,再單擊數據庫賬號管理。
在數據庫賬號管理頁面,單擊左上角的創建數據庫賬號。
在彈出的窗口中,設置以下配置項。
單擊基本設置頁簽,配置參數。
配置項
說明
數據庫賬號
自定義登錄數據庫的賬號。
主機
表示允許賬號從某個IP地址訪問數據庫。
說明如果不填該配置項,表示不指定賬號從特定的IP地址訪問數據庫,系統的默認值為
%
。密碼
請輸入登錄密碼。
確認密碼
請再次輸入登錄密碼。
說明上述配置項的SQL語句格式為
CREATE USER `用戶名`@`主機` IDENTIFIED BY `密碼`;
。如果您需要配置高級選項,請單擊高級選項按鈕,并進行配置。
例如按照下圖進行配置的SQL示例為:
GRANT USAGE ON *.* TO '用戶名'@'主機' WITH MAX_QUERIES_PER_HOUR 100 MAX_UPDATES_PER_HOUR 200 MAX_CONNECTIONS_PER_HOUR 300 MAX_USER_CONNECTIONS 400;
單擊全局權限頁簽,勾選目標權限。
說明若您使用普通賬號在權限類型中未找到目標權限,可能由于賬號權限或實例類型不支持該權限。若由于賬號權限不足原因,可使用高權限賬號重試。
單擊對象權限頁簽,配置參數。
例如按照下圖進行配置的SQL示例為:
GRANT SELECT,INSERT ON `rds_db`.* TO '用戶名'@'主機'; GRANT DELETE ON `rds_db`.`rds_table` TO '用戶名'@'主機';
單擊確認。
在預覽SQL窗口,單擊確認。
說明管控模式為安全協同的數據庫實例會受安全規則限制,如無法執行請根據界面提示信息進行操作,或聯系DBA、管理員進行確認。調整規則的具體操作步驟,請參見常見問題。
編輯或刪除賬號
您可通過編輯賬號功能實現修改權限賬號的用戶名、密碼、MySQL全局權限和對象權限。
- 登錄數據管理DMS 5.0。
單擊首頁左側的數據庫實例,在實例列表中右鍵單擊目標實例名稱,再單擊數據庫賬號管理。
找到目標賬號,單擊右側的編輯或刪除,執行相關操作。
MySQL全局權限
權限 | 權限對象 | 權限說明 |
CREATE | 數據庫、表或索引 | 創建數據庫、表或索引權限。 |
DROP | 數據庫、表或視圖 | 刪除數據庫、表或視圖權限。 |
GRANT OPTION | 數據庫、表或保存的程序 | 賦予權限選項。 |
REFERENCES | 數據庫、表或列 | 外鍵權限。 |
LOCK TABLES | 數據庫 | 鎖表權限。 |
EVENT | 數據庫 | 查詢、創建、修改、刪除MySQL事件的權限。 |
ALTER | 表、視圖 | 更改表或視圖權限,比如添加字段、索引、修改字段等。 |
DELETE | 表 | 刪除數據權限。 |
INDEX | 表 | 索引權限。 |
INSERT | 表、列 | 插入權限。 |
SELECT | 表、列 | 查詢權限。 |
UPDATE | 表、列 | 更新權限。 |
CREATE VIEW | 視圖 | 創建視圖權限。 |
SHOW VIEW | 視圖 | 查看視圖權限。 |
TRIGGER | 觸發器 | 創建、刪除、執行、顯示觸發器的權限。 |
ALTER ROUTINE | 存儲過程 | 更改存儲過程權限。 |
CREATE ROUTINE | 存儲過程 | 創建存儲過程權限。 |
EXECUTE | 存儲過程 | 執行存儲過程權限。 |
FILE | 服務器主機上的文件訪問 | 文件訪問權限。 |
CREATE TEMPORARY TABLES | 服務器管理 | 創建臨時表權限。 |
CREATE USER | 服務器管理 | 創建賬號權限。 |
PROCESS | 服務器管理 | 查看進程權限。 |
RELOAD | 服務器管理 | 執行 |
REPLICATION CLIENT | 服務器管理 | 復制權限。 |
REPLICATION SLAVE | 服務器管理 | 復制權限。 |
SHOW DATABASES | 服務器管理 | 查看數據庫權限。 |
SHUTDOWN | 服務器管理 | 關閉服務器權限。 |
SUPER | 服務器管理 | 執行kill線程權限。 說明 RDS MySQL與RDS MariaDB不支持SUPER權限。 |
MySQL對象權限
權限 | 權限對象 | 權限說明 |
CREATE | 數據庫、表或索引 | 創建數據庫、表或索引權限。 |
DROP | 數據庫、表或視圖 | 刪除數據庫、表或視圖權限。 |
GRANT OPTION | 數據庫、表或保存的程序 | 賦予權限選項。 |
REFERENCES | 數據庫、表或列 | 外鍵權限。 |
LOCK TABLES | 數據庫 | 鎖表權限。 |
EVENT | 數據庫 | 查詢、創建、修改、刪除MySQL事件的權限。 |
ALTER | 表、視圖 | 更改表或視圖權限,比如添加字段、索引、修改字段等。 |
DELETE | 表 | 刪除數據權限。 |
INDEX | 表 | 索引權限。 |
INSERT | 表、列 | 插入權限。 |
SELECT | 表、列 | 查詢權限。 |
UPDATE | 表、列 | 更新權限。 |
CREATE VIEW | 視圖 | 創建視圖權限。 |
SHOW VIEW | 視圖 | 查看視圖權限。 |
TRIGGER | 觸發器 | 創建、刪除、執行、顯示觸發器的權限。 |
常見問題
Q:創建權限用戶時,提示由于安全規則設置,禁止執行CREATE_USER命令創建權限用戶,該怎樣解決?
A:您需要根據錯誤提示框中的操作步驟解決此問題。具體操作如下:
查看實例綁定的安全規則集名稱。
您可在控制臺首頁左側的實例列表中,找到目標實例,右鍵單擊目標實例,單擊查看詳情。
調整安全規則。
登錄數據管理DMS 5.0。
在頂部菜單欄中,選擇
。在安全規則頁簽中,單擊目標規則集操作列下的編輯。
在左側導航欄中,單擊SQL變更。
檢測點選擇SQL執行規則。
選擇允許所有DCL在SQL控制臺直接執行安全規則,并單擊操作列下的編輯。
在編輯規則對話框的規則DSL區域,增加CREATE_USER SQL類型。
單擊提交。