### 创建账号
在使用数据库之前,您需要在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白名单、监控报警等。
#### 如何创建账号
##### 注意事项
* 分配数据库账号权限时,请按最小权限原则和业务角色创建账号,并合理分配只读和读写权限。必要时可以把数据库账号和数据库拆分成更小粒度,使每个数据库账号只能访问其业务之内的数据。如果不需要数据库写入操作,请分配只读权限。
* 请设置数据库账号的密码为强密码,并定期更换。