### 創建賬號
在使用數據庫之前,您需要在RDS實例中創建賬號。目前,RDS有兩種管理模式的賬號,即`經典模式`和`高權限模式`。經典模式是較早的管理模式,無法通過SQL來管理數據庫和賬號。高權限模式是較新的管理模式,開放了更多的權限,而且創建高權限賬號后您可以通過SQL來管理數據庫和賬號。從長遠來看,若您有個性化和精細化權限管理的需求,我們推薦您使用高權限模式。
本文將介紹在經典模式和高權限模式下的賬號特點和功能區別,以及如何創建不同模式的賬號。
#### 賬號模式簡介
在經典模式下,所有賬號均通過阿里云的RDS控制臺或者API創建,不能通過SQL創建,且賬號之間是平等關系。另外,您可以通過RDS控制臺創建、管理所有賬號和數據庫。
在高權限模式下,創建的第一個賬號為初始賬號,需通過阿里云的RDS控制臺或API創建和管理。初始賬號創建成功后,用初始賬號登錄數據庫,然后通過SQL命令或阿里云的`數據管理DMS`來創建和管理其它普通賬號。但您不能使用初始賬號去修改其它普通賬號的密碼,如果需要修改普通賬號的密碼,只能刪除后重新創建。例如,使用初始賬號root登錄數據庫后,再創建普通賬號jeffrey,如下所示:
~~~
mysql -hxxxxxxxxx.mysql.rds.aliyuncs.com -uroot -pxxxxxx -e "
CREATE USER 'jeffrey'@'%' IDENTIFIED BY 'password';
CREATE DATABASE DB001;
~~~
#### 引擎版本支持賬號
各版本引擎所支持的賬號模式,如下表所示:
|數據庫引擎 |賬號模式|
|--|--|
MySQL 5.5/5.6 |經典模式/高權限模式,說明:僅支持經典到高權限模式的單向升級,不支持回滾。|
|MySQL 5.7 |高權限模式|
#### 賬號和權限區別
下表從賬號和權限的角度列出了經典模式和高權限模式的區別:
|對比項目 |經典模式 |高權限模式|
|--|--|--|
|賬號數量 |最多500個。 |無限制。|
|數據庫數量 |MySQL:最多500個。SQL Server:最多50個。|無限制。|
|是否可以通過RDS控制臺管理數據庫和賬號| 是 |可以在控制臺上管理第一個創建的高權限賬號,但不能管理其它賬號,需要通過SQL命令或DMS來創建和管理其它賬號。不能在控制臺上創建和管理數據庫,需要通過SQL命令或DMS來創建和管理數據庫。|
|是否可以通過SQL管理數據庫和賬號 |否 |是|
|權限管理 |簡單,對每個賬號只提供讀寫和只讀兩種賬號權限。 |更加豐富、精細。可充分利用數據庫引擎的權限管理優勢,比如可按用戶分配不同表的查詢權限。|
|賬號支持的權限(僅適用于MySQL) |SELECT、INSERT、UPDATE、DELETE、CREATE、DROP、PROCESS、INDEX、ALTER、CREATE TEMPORARY TABLES、LOCK TABLES、EXECUTE、REPLICATION SLAVE、REPLICATION CLIENT、CREATE VIEW、SHOW VIEW、CREATE ROUTINE、ALTER ROUTINE、EVENT、TRIGGER |除經典模式所支持的20個權限外,還額外支持CREATE USER、RELOAD和REFERENCES。|
#### 功能區別
在產品功能上,兩種模式沒有任何區別,所有功能可以正常使用,包括只讀實例、讀寫分離、變配升級、網絡管理、IP白名單、監控報警等。
#### 如何創建賬號
##### 注意事項
* 分配數據庫賬號權限時,請按最小權限原則和業務角色創建賬號,并合理分配只讀和讀寫權限。必要時可以把數據庫賬號和數據庫拆分成更小粒度,使每個數據庫賬號只能訪問其業務之內的數據。如果不需要數據庫寫入操作,請分配只讀權限。
* 請設置數據庫賬號的密碼為強密碼,并定期更換。