GaussDB(for Redis)多租户:读写权限控制和数据库隔离的完美融合
本文分享自华为云社区《GaussDB(for Redis)企业级特性揭秘之多租户管理》,作者: GaussDB 数据库 。
华为云GaussDB(for Redis)持续完善企业级增强特性,是名副其实的"Redis Plus",其中很经典的企业级特性是多租户能力,支持添加只读账号、读写账号,并且可约束每个账号可访问的数据库(DB)范围,避免误操作其他租户数据。该特性可以帮助企业在共享Redis实例的情况下,保护不同租户的数据安全,为企业的开发和管理提供便利。
哪些用户需要使用租户管理功能?
多租户是数据库用户刚需的一个功能,例如,企业中有两个业务部门A和B,他们都需要使用Redis来存储自己的数据,如果不使用多租户权限功能,那么A和B的数据就会混在一起,这样就会存在数据泄露和误操作的风险。一旦使用了多租户管理功能,就可以将A和B的数据分别存储在不同的Redis实例/DB中,并且对这些实例/DB进行权限控制,从而保障数据的安全性和可靠性。
在数据库领域,多租户技术往往有以下一些标准属性:比如读写权限控制、跨DB鉴权隔离等等;而GaussDB(for Redis)就是具备完善的多租户管理技术的一个典范,实现了读写权限控制和数据库(DB)隔离这两大特性的完美融合。
Redis 6.0已具备ACL功能,为什么还要使用GaussDB(for Redis)的多租户功能?
关于权限控制,开源Redis虽然在6.0新版本有ACL,但只能设置为只读、读写,每个账号还是可以看到所有的DB的。这个设计比较鸡肋,跟数据库多租户的原理背道而驰。举个例子,业务开发小王应该用DB1,但有天忘记SELECT,不小心清库了小张的DB0,导致生产事故。而GaussDB(for Redis)的权限隔离就从根源上解决了这个问题,如小王被设置为只有DB1的权限而没有DB0的权限,那么即使他误操作也不会对DB0的数据产生影响。
此外,开源Redis的多租户功能只有单机才可以使用,一旦业务上量需要集群,多DB功能反而就不可用了,只剩一个DB0;GaussDB(for Redis)基于自身天然的集群架构做了多DB增强,支持6w+DB,同时可创建200+个ACL子账号,满足多种业务场景的需要。

开源Redis 6.0和GaussDB(for Redis)所具备的权限管理能力比较
功能听上去很全面,具体怎么使用?
GaussDB(for Redis)的租户管理功能需要用户在控制台的账号管理页面建立账号,并为每个账号设置DB的只读/读写权限,操作非常直观方便。例如,下图创建了账号test123,具备读写权限,且只能访问DB1、DB2。

账号建立好之后,用户可以直接在程序中使用“user:pwd”组合字串作为密码参数,并配置目标DB号,即可使用业务专属DB。
下面以一个形象的例子来说明如何通过多租户管理功能来实现账户间的权限隔离。蜀国技术总监诸葛孔明需要为蜀国的用户和合作伙伴吴国的用户设计不同的DB权限,从而达到公有信息共享和机密信息保护这两个目的。
首先,他为刘备设置了所有DB的读写权限;为大将关羽和张飞设置了“桃园结义”DB0和“华容道”DB1和的读写权限,然后为秘书赵云设置了“长坂坡”DB2的读写权限和其余DB(除“桃园结义”DB0)的只读权限。至于吴国的合作伙伴,周瑜和黄盖被授予了“赤壁之战”DB3的读写权限,而他们的主公孙权则被设置了“赤壁之战”DB3的只读权限。
听上去是不是很复杂很难操作?其实GaussDB(for Redis)的账号管理页面设计得很灵活直观,孔明可以通过点击“授权所有数据库”为刘备授权,又可以选择一个或者多个DB为关羽张飞授权,还能选择“未授权数据库”为赵云免除“桃园结义”DB的只读权限,非常方便设置和后期管理。




总结
本文详细介绍了GaussDB(for Redis)全面的多租户管理特性,并以几个生动的例子为例,阐明了开源Redis账号管理能力的不足,以及GaussDB(for Redis)是如何解决这些不足的。在当前的大数据时代,GaussDB(for Redis)的企业级特性完美弥补了开源Redis的短板,为企业的数据安全保驾护航。
附录
• 本文作者:华为云数据库GaussDB(for Redis)团队
• 杭州/西安/深圳简历投递:yuwenlong4@huawei.com
• 更多产品信息,欢迎访问官方博客:bbs.huaweicloud.com/blogs/248875
GaussDB(for Redis)多租户:读写权限控制和数据库隔离的完美融合的更多相关文章
- springmvc 事务控制与数据库隔离级别
springmvc 事物传播与数据库隔离控制 http://www.cnblogs.com/yangy608/archive/2011/06/29/2093478.html 一.Propagation ...
- Oracle用户的单张表的读写权限控制
在oracle数据库的用户下,一张表需要做读写控制,只能读和写,不能删除和修改.开发人员开始想从用户权限上去实现. 经过一番讨论,判读从权限上去实现该需求是不合适的. 这个用户下很多表,根本不会被一个 ...
- Oracle 用户管理与权限控制
Oracle 用户管理与权限控制 oracle数据库的权限系统分为系统权限与对象权限.系统权限( database system privilege )可以让用户执行特定的命令集.例如,create ...
- redis密码设置、访问权限控制等安全设置
redis作为一个高速数据库,在互联网上,必须有对应的安全机制来进行保护,方法有2,如下. 1.比较安全的办法是采用绑定IP的方式来进行控制. 请在redis.conf文件找到如下配置 # If y ...
- ASP.NET Core 实战:基于 Jwt Token 的权限控制全揭露
一.前言 在涉及到后端项目的开发中,如何实现对于用户权限的管控是需要我们首先考虑的,在实际开发过程中,我们可能会运用一些已经成熟的解决方案帮助我们实现这一功能,而在 Grapefruit.VuCore ...
- mysq'l系列之10.mysql优化&权限控制
网站打开慢如何排查 1.打开网页, 用谷歌浏览器F12, 查看network: 哪个加载时间长就优化哪个 2.如果是数据库问题 2.1 查看大体情况 # top # uptime //load av ...
- 华为云PB级数据库GaussDB(for Redis)揭秘第八期:用高斯 Redis 进行计数
摘要:高斯Redis,计数的最佳选择! 一.背景 当我们打开手机刷微博时,就要开始和各种各样的计数器打交道了.我们注册一个帐号后,微博就会给我们记录一组数据:关注数.粉丝数.动态数-:我们刷帖时,关注 ...
- SpringCloud微服务实战——搭建企业级开发框架(二十八):扩展MybatisPlus插件DataPermissionInterceptor实现数据权限控制
一套完整的系统权限需要支持功能权限和数据权限,前面介绍了系统通过RBAC的权限模型来实现功能的权限控制,这里我们来介绍,通过扩展Mybatis-Plus的插件DataPermissionInterce ...
- 深度评测丨 GaussDB(for Redis) 大 Key 操作的影响
本文分享自华为云社区<墨天轮评测:GaussDB(for Redis)大Key操作的影响>,作者: 高斯 Redis 官方博客. 在前一篇文章<墨天轮评测:GaussDB(for R ...
- MongoDB 安全和访问权限控制
MongoDB的访问控制能够有效保证数据库的安全,访问控制是指绑定Application监听的IP地址,设置监听端口,使用账户和密码登录 一,访问控制的参数 1,绑定IP地址 mongod 参数:-- ...
随机推荐
- POSIX 真的不适合对象存储吗?
最近,留意到 MinIO 官方博客的一篇题为"在对象存储上实现 POSIX 访问接口是坏主意"的文章,作者以 S3FS-FUSE 为例分享了通过 POSIX 方式访问 MinIO ...
- 2022-10-22 CSP赛前隔离时的模拟赛 1:3
T1 一个比较迷的数论题,推柿子. 首先能得到基础柿子: \[m\cdot x + \frac{m(m-1)\cdot y}{2} = n \] 略微化简得: \[2x + (m-1)y = \fra ...
- 再见,Spring!你好,Solon!
Solon 是什么框架? Java 生态级应用开发框架.从零开始构建,有自己的标准规范与开放生态(历时五年,具备全球第二级别的生态规模).与其他框架相比,解决了两个重要的痛点:启动慢,费内存. 解决痛 ...
- Python 数学函数和 math 模块指南
Python 提供了一组内置的数学函数,包括一个广泛的数学模块,可以让您对数字执行数学任务. 内置数学函数.min() 和 max() 函数可用于在可迭代对象中查找最低或最高值: 示例:查找可迭代对象 ...
- [C++]二叉链-二叉树存储
二叉链存二叉树 预备知识 指针的熟练掌握 Bolg template模板的知识 Bolg 二叉树的基本知识 感谢: 代码参考:CSDN博主「云雨澄枫」的原创文章 链接 代码解析 结构体 BiNode ...
- webview是什么?作用是什么?和浏览器有什么关系?
Webview 是一个基于webkit的引擎,可以解析DOM 元素,展示html页面的控件,它和浏览器展示页面的原理是相同的,所以可以把它当做浏览器看待.(chrome浏览器也是基于webkit引擎开 ...
- 字节序:大端和小端(Big endian and Little endian)(转自维基百科)
简介[编辑] 在几乎所有的机器上,多字节对象都被存储为连续的字节序列.例如在C语言中,一个类型为int的变量x地址为0x100,那么其对应地址表达式&x的值为0x100.且x的四个字节将被存储 ...
- python列表删除元素之del,pop()和remove()
del函数 如果知道要删除元素在列表中的位置,可以使用del语句: list_1 = ['one', 'two', 'three'] print(list_1) del list_1[0] print ...
- js实现按照首字母排序
<script type="text/javascript"> let obj = [{name:'CA'},{name:'XA'},{name:'CB'},{name ...
- In 查询及其优化
translator Afrikaans Albanian - shqipe Arabic - العربية Armenian - Հայերէն Azerbaijani - azərb ...