DMS支援細粒度(庫、表、列、視圖等)層級的MySQL資料庫帳號許可權管控。本文向您介紹如何在DMS中管理MySQL資料庫帳號許可權。
前提條件
資料庫類型為RDS MySQL、PolarDB MySQL版、AnalyticDB for MySQL、自建MySQL、MariaDB或RDS MariaDB。
您的使用者角色為管理員、DBA或普通使用者(執行個體Owner),更多資訊,請參見系統角色。
已擷取目標資料庫的資料庫帳號和資料庫密碼。
功能介紹
您可以在RDS MySQL、PolarDB MySQL版控制台上對資料庫大分類組合許可權(例如唯讀、讀寫、僅DML、僅DDL)進行便捷地管理與維護,但對於自訂各種權限類別型組合或授予某些表層級許可權等情境,您可以通過DMS推出的資料庫帳號許可權管理功能進行靈活管控。例如:
給A帳號授予全域
SELECT
和UPDATE
許可權。說明全域許可權作用於整個資料庫執行個體層級,關於更多的全域權限類別型介紹請參見MySQL全域許可權。
給B帳號授予單張表的
SELECT
許可權或某一列的UPDATE
許可權。說明對象許可權作用範圍可以是所有資料庫物件,也可以指定單個或多個資料庫物件,關於更多的對象權限類別型介紹請參見MySQL對象許可權。
建立帳號
- 登入Data Management 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全域許可權和對象許可權。
- 登入Data Management 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:您需要根據錯誤提示框中的操作步驟解決此問題。具體操作如下:
查看執行個體綁定的安全規則集名稱。
您可在控制台首頁左側的執行個體列表中,找到目標執行個體,按右鍵目標執行個體,單擊查看詳情。
調整安全規則。
在頂部功能表列中,選擇
。在安全規則頁簽中,單擊目標規則集操作列下的編輯。
在左側導覽列中,單擊SQL變更。
檢測點選擇SQL執行規則。
選擇允許所有DCL在SQL控制台直接執行安全規則,並單擊操作列下的編輯。
在編輯規則對話方塊的規則DSL地區,增加CREATE_USER SQL類型。
單擊提交。