GaussDB技术解析之密码安全策略

1.密码安全策略 GaussDB

用户密码存储在系统表 pg_authid 中,为防止用户密码泄露,GaussDB对用户密码进行加密存储,
所采用的加密算法由配置参数 password_encryption_type 决定。
•当参数password_encryption_type设置为0时,表示采用MD5方式对密码加密。
	MD5加密算法安全性低,存在安全风险,不建议使用。
•当参数password_encryption_type设置为1时,表示采用sha256和MD5方式对密码加密。
	MD5加密算法安全性低,存在安全风险,不建议使用。
•当参数password_encryption_type设置为2时,表示采用sha256方式对密码加密,为默认配置。
•当参数password_encryption_type设置为3时,表示采用sm3方式对密码加密。

2.查看已配置的加密算法。

gaussdb=# SHOW password_encryption_type;
 password_encryption_type
--------------------------
 2
(1 row)

3.修改密码加密算法。

--0/1都不安全。
gs_guc reload -Z datanode -N all -I all -c "password_encryption_type=2"

4.账户密码的复杂度及长度要求如下

◾包含大写字母(A-Z)的最少个数(根据GUC参数password_min_uppercase配置)。
◾包含小写字母(a-z)的最少个数(根据GUC参数password_min_lowercase配置)。
◾包含数字(0-9)的最少个数(根据GUC参数password_min_digital配置)。
◾包含特殊字符的最少个数(根据GUC参数password_min_special配置,特殊字符的列表请参见表1)。
◾密码的最小长度(根据GUC参数password_min_length配置)。
◾密码的最大长度(根据GUC参数password_max_length配置)。

5.关于若口令的说明。

◾弱口令指的是强度较低,容易被破解的密码,对于不同的用户或群体,弱口令的定义可能会有所区别,
	用户需自己添加定制化的弱口令。
◾弱口令字典中的口令存放在 gs_global_config 系统表中,当创建用户、修改用户需要设置密码时,
	将会把用户设置口令和弱口令字典中存放的口令进行对比,如果命中,则会提示用户该口令为弱口令,设置密码失败。
◾弱口令字典默认为空,用户通过以下语法可以对弱口令字典进行增加和删除
--示例如下:
CREATE WEAK PASSWORD DICTIONARY WITH VALUES ('oracle'), ('mysql123'),('gaussdb001');
DROP WEAK PASSWORD DICTIONARY;
 
--由此可见,我们可以通过创建弱口令字典来加强密码的管理。不让设置太简单容易被猜到的密码。

6.密码重用问题

不可重用天数默认值为60天,不可重用次数默认值是0。这两个参数值越大越安全
--查看已配置的参数。
gaussdb=# SHOW password_reuse_time;
 password_reuse_time
---------------------
 60
(1 row)
 
密码过期后,60天以内不能设置和以前相同的密码。
不建议设置为0,即使需要设置也要将所有数据库节点中的password_reuse_time都设置为0才能生效。
 
数据库用户的密码都有密码有效期(password_effect_time),
当达到密码到期提醒天数(password_notify_time)时,
系统会在用户登录数据库时提示用户修改密码。
 
 
gs_guc reload -Z datanode -N all -I all -c "password_reuse_time=60"
 
--0表示不能重用。每次设置必须不同。
gaussdb=# SHOW password_reuse_max;
 password_reuse_max
--------------------
 0
(1 row)
 
--修改密码可以重用的次数。
gs_guc reload -Z datanode -N all -I all -c "password_reuse_max = 0"

7.密码有效期

gaussdb=# SHOW password_effect_time;
 password_effect_time
----------------------
 90
(1 row)
--设置密码有效期。
gs_guc reload -Z datanode -N all -I all -c "password_effect_time = 90"
 
这里需要注意账号(用户)有效期和密码有效期可以不同。从两个不同的维度进行约束。
gaussdb=# SHOW password_notify_time;
 password_notify_time
----------------------
 7
(1 row)
 
--当达到密码到期提醒天数:过期前一个礼拜通知。
gs_guc reload -Z datanode -N all -I all -c "password_notify_time = 7"

8.修改密码。

gaussdb=# ALTER USER user1 IDENTIFIED BY 'NewPasswd' REPLACE 'OldPasswd';
ALTER ROLE
 
gaussdb=# ALTER USER joe IDENTIFIED BY "********";
ALTER ROLE
<think>嗯,用户想了解GaussDB的架构,看来是个技术背景比较强的人。之前已经提供了五篇引用资料,内容相当全面,需要整合这些信息给出清晰的结构化说明。 用户可能是个数据库管理员或者架构师,正在做技术选型,所以需要深入理解GaussDB的设计特点。从提问方式看,ta更关注整体框架而非细节实现,因此应该突出架构分层的逻辑性和设计优势。 引用[1]和[2]都提到了三层或四层架构,需要统一表述。注意到引用[1]说三层(集群管理层/服务层/存储层),而引用[2]提到四层松耦合架构,这可能是指把集群管理层拆得更细。结合引用[4]说基于PostgreSQL和openGauss,说明存储层可能继承了传统关系型数据库的特性。 安全模块在引用[5]里描述得很详细,特别是账本数据库的防篡改设计,这部分对金融用户应该很重要。HTAP和多模支持在多个引用中出现,显然是核心卖点,需要重点解释混合负载的处理机制。 用户没提具体场景,但引用[3]提到金融政企应用,可以推测ta可能关心高可用方案。在存储层描述时要强调数据分片和副本机制,这是分布式数据库的关键。 对了,云原生特性在引用[2]有详细说明,包括Kubernetes和Sidecar模式,这部分对互联网用户可能更有吸引力。最后总结时应该把架构优势和应用场景对应起来,比如HTAP对应实时分析需求,云原生对应弹性扩展需求。 需要特别注意术语一致性,比如"Shared-Nothing架构"在不同引用中都出现了,要确认是否所有产品线都采用这种设计。引用[4]提到GaussDB包含多个产品系列,架构可能有差异,但用户问的是通用架构,可以主要描述分布式版本。 </think> 好的,我们来详细解析一下华为GaussDB数据库的核心架构。基于您提供的引用资料,GaussDB的架构设计体现了**云原生、分布式、多模融合、安全可靠**的理念,旨在满足企业级关键业务对**高性能、高可用、弹性伸缩、混合负载(HTAP)** 的需求。其核心架构通常被描述为分层设计,主要包含以下几个关键层次: ## 核心架构分层 1. **集群管理层 (Cluster Management Layer)** * **核心职责:** 负责整个数据库集群的生命周期管理、资源调度、高可用保障和状态监控。 * **关键技术与组件:** * **云原生基础设施:** 深度整合Kubernetes容器编排平台,实现**计算、存储、网络资源的池化和动态调度**(引用[2])。这使得GaussDB能够实现**秒级的弹性扩缩容**,资源利用率更高。 * **服务网格化:** 采用Sidecar模式(如Envoy或类似代理)进行服务治理(熔断、限流、负载均衡),将数据库的核心功能(如SQL处理、事务)与非功能性需求(监控、安全策略、日志收集)**解耦**(引用[2])。这提升了系统的可维护性、可观测性和灵活性。 * **高可用管理:** 负责节点故障检测、自动故障切换(Failover)、数据副本管理、集群配置管理、备份恢复等,确保服务的连续性。 * **智能运维(AIOps):** 集成智能化能力,实现性能监控、故障预测、参数调优、容量规划等自动化运维任务(引用[1])。 2. **数据库服务层 (Database Service Layer / Compute Layer)** * **核心职责:** 处理客户端连接请求,进行SQL解析、查询优化、执行计划生成与执行、事务管理、并发控制等核心数据库引擎功能。 * **关键特性与组件:** * **分布式查询引擎:** 基于**Shared-Nothing分布式架构**(引用[2]),数据被分片(Sharding)存储在多个节点上。查询引擎能高效地将复杂查询拆解,分发到各个数据节点并行执行,最后汇总结果,极大提升处理海量数据和复杂查询的能力。 * **多模态融合引擎 (Multi-Model Engine):** 这是GaussDB区别于传统数据库的重要特性。它支持在单一数据库系统中处理多种数据模型(引用[1],[2]): * **关系型 (Relational):** 支持标准SQL,处理结构化数据(OLTP, OLAP)。 * **文档型 (Document):** 如JSON/Bson文档存储与查询。 * **时序型 (Time-Series):** 高效处理带时间戳的监控、物联网等数据。 * **图型 (Graph):** 处理复杂的关联关系数据。 * **空间型 (Spatial):** 处理地理空间数据。 * *(具体支持的多模类型可能因产品版本或具体系列而异)* * **HTAP引擎 (混合事务/分析处理):** 这是GaussDB的核心设计目标之一(引用[1])。它允许**同一份数据**在同一套系统内同时处理**高并发、低延迟的事务型负载(OLTP)** 和**复杂分析型查询(OLAP)**,无需繁琐的ETL和数据同步。这通常通过优化存储格式(如行列混合存储)、资源隔离、高效的增量数据处理等技术实现,减少分析查询对在线交易的影响。 * **连接管理与会话管理:** 处理客户端连接,维护用户会话状态。 3. **存储层 (Storage Layer)** * **核心职责:** 提供数据的持久化存储、本地数据管理(如索引、缓存)、数据可靠性保障(副本机制)以及高效的数据访问接口。 * **关键特性与组件:** * **分布式存储:** 数据根据分片策略(如Hash/Range/List)分散存储在集群的多个节点(Data Node)上。每个分片通常有多个副本(Replica),分布在不同的物理节点或可用区(AZ)以实现高可用和容灾(引用[1],[2])。 * **存储引擎:** 包含行存储引擎(适用于OLTP场景)、列存储引擎(适用于OLAP场景),以及支持HTAP的**行列混合存储引擎**(引用[1])。先进的存储格式(如PAX, RCFile变种)和压缩技术被用于提升I/O效率和降低存储成本。 * **持久化与可靠性:** 利用本地存储(SSD/HDD)以及可能的分布式文件系统/块存储服务(在云环境下),结合WAL(Write-Ahead Logging)、Checkpointing、多副本数据同步(如Raft/Paxos协议)等机制,确保数据的持久性和一致性。 * **高性能访问:** 提供高效的本地数据读写接口供计算层调用,利用缓存(Buffer Pool)、预读等技术优化访问速度。 ## 贯穿各层的核心设计理念与增强特性 * **云原生原生设计:** 如前所述,资源池化、服务网格化、弹性伸缩是其核心(引用[2])。 * **安全架构:** GaussDB非常重视安全性,特别是在金融政企场景(引用[4],[5])。除了基础的认证、授权、审计、加密(传输加密、存储加密)外,其突出亮点包括: * **账本数据库 (Ledger Database):** (引用[5])提供**防篡改、可追溯**能力。关键技术包括: * 存储层增强:为防篡改表增加密码学校验信息(如哈希链)。 * 应用层增强:提供高效篡改校验接口和算法(如Merkle Tree, 区块链技术),快速识别用户表、历史表、全局区块表的一致性。 * 传输层增强:集成多方共识机制(如CFG, BFT),确保对防篡改数据的修改需获得多数参与方认可并记录,形成不可篡改的“链”。 * **智能运维 (AIOps):** 利用AI/ML技术实现自动化监控、诊断、调优和预测性维护,贯穿集群管理、服务层监控等(引用[1],[2])。 * **开放生态:** GaussDB系列产品(如openGauss)强调开源开放(引用[3],[4]),积极构建社区(如Gauss松鼠会)(引用[3])。 ## 总结架构图景 ``` +-------------------------------------------------+ | 集群管理层 (Cluster Mgmt) | | - 云原生(K8s): 资源池化、弹性伸缩、服务网格(Sidecar) | | - 高可用(HA): 故障切换、副本管理 | | - 智能运维(AIOps): 监控、调优、预测 | +-------------------------------------------------+ | 数据库服务层 (Service/Compute) | | - 分布式查询引擎 (Shared-Nothing) | | - 多模态融合引擎 (Relational, Doc, TS, Graph...) | | - HTAP引擎 (行列混存, 资源隔离) | | - SQL解析、优化、执行、事务管理 | +-------------------------------------------------+ | 存储层 (Storage) | | - 分布式存储 (分片Sharding, 多副本Replication) | | - 存储引擎: 行存(OLTP)、列存(OLAP)、行列混存(HTAP) | | - 持久化、可靠性(WAL, Checkpoint, 共识协议) | +-------------------------------------------------+ || || || || || 安全贯穿始终 || || || || (账本数据库, || 加密, 审计...)|| || || 多方共识...) || || || +-------------------------------------------------+ || || || || || 智能运维贯穿 || || || || (AIOps) || || || +-------------------------------------------------+ ``` **核心价值:** GaussDB通过这种**分层解耦、云原生分布式、多模HTAP融合、内建高级安全(如账本)和智能运维**的架构,为企业提供了一个能够**一站式处理多样化数据、支撑混合业务负载、具备极致弹性与可靠性、满足严苛安全合规要求**的新一代全栈数据库平台[^1][^2][^4][^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Gauss松鼠会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值