首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(2)

【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(2)

作者头像
数据和云
发布于 2022-02-25 08:38:29
发布于 2022-02-25 08:38:29
57200
代码可运行
举报
文章被收录于专栏:数据和云数据和云
运行总次数:0
代码可运行
前文回顾:

1.如何掌握openGauss数据库核心技术?秘诀一:拿捏SQL引擎(1)

2.如何掌握openGauss数据库核心技术?秘诀一:拿捏SQL引擎(2)

3.如何掌握openGauss数据库核心技术?秘诀一:拿捏SQL引擎(3

4.如何掌握openGauss数据库核心技术?秘诀一:拿捏SQL引擎(4)

5.如何掌握openGauss数据库核心技术?秘诀二:拿捏执行器技术(1

6.如何掌握openGauss数据库核心技术?秘诀二:拿捏执行器技术(2)

7.如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(1)

8.如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(2)

9.如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(3)

10.如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(4)

11.如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(5)

12.如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(6)

13.如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(7)

14.如何掌握openGauss数据库核心技术?秘诀四:拿捏事务机制(1)

15.如何掌握openGauss数据库核心技术?秘诀四:拿捏事务机制(2)

16.如何掌握openGauss数据库核心技术?秘诀四:拿捏事务机制(3)

17.如何掌握openGauss数据库核心技术?秘诀四:拿捏事务机制(4)

18.如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(1)

目录

  • openGauss数据库SQL引擎
  • openGauss数据库执行器技术
  • openGauss存储技术
  • openGauss事务机制
  • openGauss数据库安全 Ⅰ.openGauss安全机制概览 Ⅱ.openGauss安全认证 1.客户端配置信息 2.服务端认证方法 3.安全认证通道 4.RFC5802认证协议 Ⅲ.openGauss角色管理机制 Ⅳ.openGauss审计与追踪 Ⅴ.openGauss数据安全技术 Ⅵ.openGauss云安全技术 Ⅶ.openGauss智能安全机制

二.openGauss安全认证

安全认证通道

03

首先openGauss支持SSL标准协议(TLS1.2),SSL协议是安全性更高的协议标准,它们加入了数字签名和数字证书来实现客户端和服务器的双向身份验证,保证了通信双方更加安全的数据传输。

openGauss在安装部署完成后,默认开启SSL认证模式。安装包中也包含了认证所需要的证书和密钥信息。这些证书由CA可信中心颁发。假定服务器的私钥为server.key,证书为server.crt,客户端的私钥为client.key,证书为client.crt,CA根证书名称为cacert.pem。这些证书信息存放在“/home/ommdbadmin”目录。

需要说明的是,集群安装部署完成后,服务端证书、私钥以及根证书均已默认配置完成。用户只需要配置客户端相关的参数。

1. 配置客户端参数
客户端参数配置依据实际场景分为单向认证配置和双向认证配置,整个配置信息存储在客户端工具所在的环境配置文件中(如.bashrc文件)。单向认证需要配置如下参数:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export PGSSLMODE="verify-ca"
export PGSSLROOTCERT="/home/ommdbadmin/cacert.pem"

双向认证需配置如下参数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export PGSSLCERT="/home/ommdbadmin/client.crt"
export PGSSLKEY="/home/ommdbadmin/client.key"
export PGSSLMODE="verify-ca"
export PGSSLROOTCERT="/home/ommdbadmin/cacert.pem"
2. 修改客户端密钥的权限

客户端根证书、密钥、证书以及密钥密码加密文件的权限,需保证为600。如果权限不满足要求,则客户端无法以SSL连接到集群。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
chmod 600 cacert.pem
chmod 600 client.key
chmod 600 client.crt
chmod 600 client.key.cipher
chmod 600 client.key.rand

在实际应用中,应结合场景进行配置。从安全性考虑,建议使用双向认证方式,此时客户端的PGSSLMODE变量建议设置为verify-ca。但如果本身数据库处在一个安全的环境下,且业务场景属于高并发、低时延业务则可使用单向认证模式。

除了通过SSL进行安全的TCP/IP连接外,openGauss还支持SSH隧道进行安全的TCP/IP连接。SSH专为远程登录会话和其他网络服务提供安全性的协议。从SSH客户端来看,SSH提供了两种级别的安全验证:

§ 基于口令的安全验证:使用帐号和口令登录到远程主机。所有传输的数据都会被加密,但是不能保证正在连接的服务器就是需要连接的服务器。可能会有其他服务器冒充真正的服务器,也就是受到“中间人”方式的攻击。

§ 基于密钥的安全验证:用户必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。这种级别的认证不仅加密所有传送的数据,而且避免“中间人”攻击方式。但是整个登录的过程可能需要10秒。

在实际执行过程中,SSH服务和数据库服务应运行在同一台服务器上。

RFC5802认证协议

04

在实际应用过程中,仅仅选定认证方法是不够的,还需要用一套完整的认证机制。这个机制要可以很好的解决客户端和服务端认证交互过程中的通信风险,还要解决客户端接收到加密口令后的验证问题。

openGauss目前选用标准的RFC5802认证机制来解决相关问题。它实际上是SCRAM(Salted Challenge Response Authentication Mechanism)标准流程中的协议。SCRAM是一套包含服务器和客户端双向确认的用户认证体系,配合信道绑定可以避免中间人攻击。下面我们将着重介绍该协议内容。

§ 首先,客户端知道用户名username和密码password,客户端发送用户名username给服务端,服务端检索相应的认证信息,例如:salt、StoredKey、ServerKey和迭代次数i(注意,服务端可能对于所有的用户都是用相同的迭代次数)。然后,服务端发送盐值salt和迭代次数i给客户端。

§ 接下来,客户端需要进行一些计算,给服务端发送ClientProof认证信息,服务端通过ClientProof对客户端进行认证,并发送ServerSignature给客户端。

§ 最后,客户端通过ServerSignature对服务端进行认证。

具体密钥计算公式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SaltedPassword := Hi (password, salt, i) 其中,Hi()本质上是PBKDF2ClientKey := HMAC(SaltedPassword, "Client Key")
StoredKey := Hash(ClientKey)
AuthMessage := client-first-message-bare + "," +
server-first-message + "," +
client-final-message-without-proof
ServerKey := HMAC(SaltedPassword, "Server Key")

其中:

§ AuthMessage通过连接认证交换的信息来计算的。

§ client-first-message-bare主要包含客户端给服务端发送的用户名username和随机字符串C-Nonce。

§ server-first-message主要是盐值salt、迭代次数i以及随机生成的字符串Nonce。

§ client-final-message-without-proof不包含认证信息ClientProof,包含随机字符串Nonce。

具体密钥衍生过程如图3所示。

图3 密钥衍生过程

在这里,服务器端存的是StoredKey和ServerKey。

§ StoredKey是用来验证Client客户身份,服务端认证客户端。通过计算ClientSignature与客户端发来的ClientProof进行异或运算,从而恢复得到ClientKey,然后将其进行hash运算,将得到的值与StoredKey进行对比。如果相等,证明客户端验证通过。

§ ServerKey是用来向客户端表明自己身份的,客户端认证服务端。通过计算ServerSignature与服务端发来的值进行比较,如果相等,则完成对服务端的认证。

在认证过程中,服务端可以计算出来ClientKey,验证完后直接丢弃不必存储。防止服务端伪造认证信息ClientProof,从而仿冒客户端。要做到合法的登录,必须知道Password、SaltedPassword或者ClientKey。如果StoryKey和ServerKey泄露,无法做到合法登录。

图4描述在一个认证会话期间的客户端和服务端的详细信息交换过程:

图4 服务端、客户端认证标准流程

(1) 客户端发送username和随机生成的挑战值C-Nonce给服务端。
(2) 服务端返回盐值salt、迭代次数i以及随机生成的挑战值Nonce给客户端。Nonce是将从客户端收到的C-Nonce和随机生成字符串组合形成的新挑战值。
(3) 客户端发送认证响应。响应信息包含客户端认证信息ClientProof和挑战值Nonce。ClientProof证明客户端拥有ClientKey,但是不通过网络的方式发送。在收到信息后,首先需要校验传来的挑战值Nonce,校验通过后,计算ClientProof。

客户端利用salt和iteration-count(迭代次数),从password计算得到SaltedPassword,然后通过密钥计算公式计算得到ClientKey、StoryKey和ServerKey。计算AuthMessage、ClientSignature。通过将客户端首次发送的信息,服务端首次发送的信息以及客户端的响应信息(不包含认证信息)连接起来得到AuthMessage。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
AuthMessage := client-first-message-bare + "," +server-first-message + "," + client-final-message-without-proof
ClientSignature := HMAC(StoredKey, AuthMessage)

客户端通过将ClientKey和ClientSignature进行异或得到ClientProof:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ClientProof := ClientKey XOR ClientSignature

将计算得到的ClientProof和第2步接收的随机字符串Nonce发送给服务端进行认证。

(4) 服务端认证Nonce和ClientProof,并且发送自己的认证信息ServerSignature。首先需要校验Nonce,校验通过后,计算ServerSignature。使用其保存的StoredKey和AuthMessage通过HMAC(Hash Message Authentication Code)算法进行计算,然后与客户端传来的ClientProof进行异或,恢复ClientKey,再对ClientKey进行哈希计算,得到的结果与服务端保存的StoredKey进行比较。如果相等,则服务端对客户端的认证通过。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ClientSignature := HMAC(StoredKey, AuthMessage)
H(ClientProof XOR ClientSignature ) == StoredKey
(5) 服务端通过计算得到的ServerSignature返回给客户端。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ServerSignature := HMAC(ServerKey, AuthMessage)
(6) 客户端通过将ServerKey和AuthMessage进行HMAC计算得到的ServerSignature与服务端传来的ServerSignature进行比较。如果相等,则客户端完成对服务端的认证。

未完待续......

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据和云 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(1)
随着数字化浪潮的飞速发展,数字、连接、信号、人工智能充斥着人们生活的各个领域。这些数字化信息被快速地转换成数据存放在各式各样的数据库系统中,通过进一步的数据管理与分析产生商业价值。这些价值数据或被存放在企业相对封闭的私有网络内,或被存放在相对开放的公有云环境下,又或是集成在智能系统中。人们在享受由数字化发展所带来的便捷生活同时,也可能面临着无处不在的隐私泄露、信息篡改、数据丢失等安全风险。
数据和云
2022/02/25
3560
【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(1)
【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(5)
数据库最重要的作用是存储数据和处理分析数据。数据是整个数据库系统中最关键的资产。因此在保护系统不受侵害的基础上最为重要的任务就是保护数据的安全。常见的数据安全技术包括数据加密、数据脱敏(Data Masking)、透明加密(Transparent Data Encryption,TDE)和全程加密(Always Encryption)技术。这里囊括了数据的动态流程和静态存储行为。
数据和云
2022/02/25
8310
【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(5)
【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(6)
点击蓝字 · 关注我们 前文回顾: 1.如何掌握openGauss数据库核心技术?秘诀一:拿捏SQL引擎(1) 2.如何掌握openGauss数据库核心技术?秘诀一:拿捏SQL引擎(2) 3.如何掌握openGauss数据库核心技术?秘诀一:拿捏SQL引擎(3) 4.如何掌握openGauss数据库核心技术?秘诀一:拿捏SQL引擎(4) 5.如何掌握openGauss数据库核心技术?秘诀二:拿捏执行器技术(1) 6.如何掌握openGauss数据库核心技术?秘诀二:拿捏执行器技术(2) 7.如何掌握ope
数据和云
2022/03/04
8600
【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(4)
openGauss在部署完成后,实际上会有多个用户参与数据管理。除了管理员用户外,更多的是创建的普通用户直接进行数据管理。用户的多样性会导致数据库存在一些不可预期的风险。如何快速发现和追溯到这些异常的行为,则需要依赖审计机制和审计追踪机制。
数据和云
2022/02/25
3510
【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(3)
数据库发展早期,访问控制通常可以分为自主访问控制(Discretionary Access Control,DAC)以及强制访问控制(Mandatory Access Control,MAC)。在自主访问控制模式下,用户是数据对象的控制者,用户依据自身的意愿决定是否将自己的对象访问权或部分访问权授予其他用户。而在强制访问控制模式下,对特定用户指定授权,用户不能将权限转交给他人。在实际应用中,DAC模式太弱,MAC又太强,且两者工作量较大,不便于管理。基于角色的访问控制机制(Role-Based Access Control,RBAC)是一种更加灵活的机制,可以作为传统访问控制机制(DAC、MAC)的代替,也是较为有效的管理方法。
数据和云
2022/02/25
7640
【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(3)
【连载】如何掌握openGauss数据库核心技术?秘诀四:拿捏事务机制(1)
事务是数据库为用户提供的最核心、最具吸引力的功能之一。简单地说,事务是用户定义的一系列数据库操作(如查询、插入、修改或删除等)的集合,数据库从内部保证了该操作集合(作为一个整体)的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),统称事务的ACID特性。其中:
数据和云
2022/02/25
4860
【连载】如何掌握openGauss数据库核心技术?秘诀四:拿捏事务机制(1)
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(6)
内存引擎作为在openGauss中与传统基于磁盘的行存储、列存储并存的一种高性能存储引擎,基于全内存态数据存储,为openGauss提供了高吞吐的实时数据处理分析能力以及极低的事务处理时延,在不同业务负载场景下可以达到其他引擎事务处理能力的3~10倍不等。
数据和云
2022/01/05
4490
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(6)
【连载】如何掌握openGauss数据库核心技术?秘诀四:拿捏事务机制(2)
本节主要介绍openGauss中如何保证单机事务的ACID,在此基础上,在之后文章的第四节中将说明如何保证分布式事务的ACID。
数据和云
2022/02/25
4190
【连载】如何掌握openGauss数据库核心技术?秘诀四:拿捏事务机制(2)
【连载】如何掌握openGauss数据库核心技术?秘诀四:拿捏事务机制(3)
在上一节的图3分布式事务一致性的例子中,对于并发执行的事务,如果没有一种机制来保障,那么其中的读事务,可能会只读到并发写事务的部分数据。事实上,对于并发的单机事务,也可能存在类似的现象。
数据和云
2022/02/25
4210
【连载】如何掌握openGauss数据库核心技术?秘诀四:拿捏事务机制(3)
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(5)
列存储引擎在Btree索引的支持角度,与传统的行存储引擎无本质差别。对于一般用于应对大数据批量分析性负载的列存储引擎来说,Btree索引有助于帮助列存储大大提升自身的点查效率,更好的适应混合负载。
数据和云
2022/01/05
6530
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(5)
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(7)
除去以上提到的Masstree本身的无锁化机制外,内存引擎的流程机制也进一步最小化了并发冲突的存在。
数据和云
2022/01/05
5260
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(7)
【连载】如何掌握openGauss数据库核心技术?秘诀二:拿捏执行器技术(2)
这个章节我们介绍下openGauss执行器里面几个高级特性,在介绍特性之前,先简单介绍下当前CPU体系架构里影响性能的几个关键因素,这些关键因素和其应对的技术构成了执行器里两个关键技术,编译执行和向量化引擎。
数据和云
2021/12/06
4940
【连载】如何掌握openGauss数据库核心技术?秘诀二:拿捏执行器技术(2)
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(1)
OLTP(联机事务处理系统)以高并发读写为主,数据实时性要求非常高,数据以行的形式组织,最适合面向外存设计的行存储引擎。随着内存逐渐变大,服务器上万亿字节(TB)大小的内存已经很常见,内存引擎面向大内存而设计,提高系统的吞吐量和降低业务时延。OLAP联机数据分析处理系统主要面向大数据量分析场景,对数据存储效率、复杂计算效率的要求非常高。列存储引擎可以提供很高的压缩比,同时面向列的计算,CPU指令高速缓存和数据高速缓存的命中率比较高,计算性能比较好,按需读取列数据,大大减少不必要的磁盘读取,非常适合数据分析场景。openGauss整个系统设计是可插拔、自组装的,并支持多个存储引擎来满足不同场景的业务诉求,目前支持行存储引擎、列存储引擎和内存引擎。
数据和云
2021/12/08
6510
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(1)
【连载】如何掌握openGauss数据库核心技术?秘诀一:拿捏SQL引擎(4)
优化器会根据生成的逻辑执行计划枚举出候选的执行路径,要确保执行的高效,需要在这些路径中选择开销最小、执行效率最高的路径。那么如何评估这些计划路径的执行开销就变得非常关键。代价估算就是来完成这项任务的,基于收集的数据统计信息,对不同的计划路径建立代价估算模型,评估给出代价,为路径搜索提供输入。
数据和云
2021/11/29
7330
【连载】如何掌握openGauss数据库核心技术?秘诀一:拿捏SQL引擎(4)
【连载】如何掌握openGauss数据库核心技术?秘诀二:拿捏执行器技术(1)
执行器在数据库整个体系结构中起到承上(优化器)启下(存储)的作用,本章首先介绍执行器的基本框架,然后引申介绍执行引擎中一些关键技术。通过本章的学习,读者应该对于执行器有基本的认识。
数据和云
2021/12/06
9880
【连载】如何掌握openGauss数据库核心技术?秘诀二:拿捏执行器技术(1)
NodeJS之加解密Crypto
就算原文件是纯英文内容,编码后内容也和原文完全不一样,普通人难以阅读但由于只有16个字符,听说一些程序员大牛能够记下他们的映射关系,从而达到读hex编码和读原文一样的效果。另外,数据在经过hex编码后,空间占用变成了原来的2倍。
前端LeBron
2021/12/27
1.9K0
NodeJS之加解密Crypto
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(2)
openGauss行存储的多版本机制与业界比较常见的关系型数据库有较大的不同,核心区别为行存储的多版本在更新的时候并不是就地更新,而是在原有页面中保留上一个版本,转而在这个页面(如果空间不够会在新页面中)创建一个新的版本,来进行历史版本的累积更新。
数据和云
2021/12/10
7800
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(2)
HTTP - TLS1.3 初次解读
在HTTP - HTTPS(TLS1.2)中,笔者介绍了目前世界主流的TLS1.2协议的相关知识点,文中从HTTP的缺陷、SSL的历史、信息加密的主要手段、数字证书、以及最为关键的TLS1.2交互过程介绍了现今HTTPS的关键部分内容。
阿东
2022/09/26
4.1K0
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(3)
前面提到,行存储是一个基于磁盘的存储引擎。为了避免IO的高昂开销,存储引擎会缓存一部分页面在内存中,便于随时对其进行检索和更改。存储引擎会对缓存的页面进行筛选、替换和淘汰,保证留存在缓存的页面能够提高整个引擎的执行效率。
数据和云
2021/12/15
9420
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(3)
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(4)
传统行存储数据压缩率低,必须按行读取,即使读取一列也必须读取整行。在分析性的作业以及业务负载的情况下,数据库往往会遇到针对大量表的复杂查询,而这种复杂查询中往往仅涉及一个较宽(表列数较多)的表中个别列。此类场景下,行存储以行作为操作单位,会引入与业务目标数据无关的数据列的读取与缓存,造成了大量IO的浪费,性能较差。因此openGauss提供了列存储引擎的相关功能。创建表的时候,可以指定行存储还是列存储。
数据和云
2021/12/22
8160
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(4)
推荐阅读
【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(1)
3560
【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(5)
8310
【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(6)
8600
【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(4)
3510
【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(3)
7640
【连载】如何掌握openGauss数据库核心技术?秘诀四:拿捏事务机制(1)
4860
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(6)
4490
【连载】如何掌握openGauss数据库核心技术?秘诀四:拿捏事务机制(2)
4190
【连载】如何掌握openGauss数据库核心技术?秘诀四:拿捏事务机制(3)
4210
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(5)
6530
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(7)
5260
【连载】如何掌握openGauss数据库核心技术?秘诀二:拿捏执行器技术(2)
4940
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(1)
6510
【连载】如何掌握openGauss数据库核心技术?秘诀一:拿捏SQL引擎(4)
7330
【连载】如何掌握openGauss数据库核心技术?秘诀二:拿捏执行器技术(1)
9880
NodeJS之加解密Crypto
1.9K0
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(2)
7800
HTTP - TLS1.3 初次解读
4.1K0
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(3)
9420
【连载】如何掌握openGauss数据库核心技术?秘诀三:拿捏存储技术(4)
8160
相关推荐
【连载】如何掌握openGauss数据库核心技术?秘诀五:拿捏数据库安全(1)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档