
# 通过账号直达功能实现GeminiDB Redis实例的多租户管理
云数据库GeminiDB Redis持续完善企业级增强特性，其中很经典的企业级特性是多租户能力，支持添加只读账号、读写账号，且具备强大的数据库级鉴权能力，即可以约束每个账号可访问的数据库（DB）范围，避免误操作其他租户数据。该特性可以帮助企业在共享Redis实例的情况下，保护不同租户的数据安全，为企业的开发和管理提供便利。
#### 应用场景
多租户是数据库用户的常用功能。例如，企业中有两个业务部门A和B，都需要使用Redis来存储各自的数据，如果不使用多租户权限功能，那么A和B的数据就会混在一起，这样就会存在数据泄露和误操作的风险。使用了多租户管理功能后，就可以将A和B的数据分别存储在不同的Redis实例或DB中，并且对这些实例或DB进行权限控制，从而保障数据的安全性和可靠性。
在数据库领域，多租户技术往往有一些标准属性：比如读写权限控制、跨DB鉴权隔离等。而GeminiDB Redis实例就具备完善的多租户管理技术，实现了读写权限控制和数据库（DB）隔离这两大特性的完美融合。
#### 方案优势
关于权限控制，开源Redis虽然在新版本有权限控制列表（Access Control List，简称ACL），但只能设置为只读、读写权限，每个账号还是可以看到所有的DB，这个设计跟数据库多租户的原理背道而驰。例如，业务开发小王应该用DB1，但有天不小心清库了小张的DB0，导致发生生产事故。而GeminiDB Redis的权限隔离就可以解决此问题，如小王被设置为只有DB1的权限而没有DB0的权限，那么即使误操作也不会对DB0的数据产生影响。
此外，开源Redis的多租户功能只有单机才可以使用，一旦业务量增加需要集群，多DB功能反而就不可用了，只剩一个DB0。GeminiDB Redis基于自身的集群架构做了多DB增强，支持DB 1000+，同时可创建200+个ACL子账号，满足多种业务场景的需要。
表1开源Redis和GeminiDB Redis所具备的权限管理能力比较 
| Redis产品        | 是否支持账户读写权限控制 | 是否支持账户权限隔离 | 多DB是否支持集群 | 可支持DB数量 |
|:---|:---|:---|:---|:---|
| 开源Redis        | 支持           | 支持         | 不支持       | 默认16    |
| GeminiDB Redis | 支持           | 支持         | 支持        | 默认1000  |
   
#### 方案详情
GeminiDB Redis实例的租户管理功能，需要用户在管理控制台的账号管理页面建立账号，并为每个账号设置DB的只读/读写权限，操作非常直观方便。具体操作步骤请参考[账号管理](https://support.huaweicloud.com/redisug-nosql/nosql_03_0237.html)。
账号建立好之后，用户可以通过auth USER PWD 或 auth USER:PWD的方式鉴权，并且通过SELECT DB访问到该账号所拥有权限的数据库。具体的使用步骤请参考文档[开启账号直达DB](https://support.huaweicloud.com/redisug-nosql/nosql_03_0239.html)。
