等保2.0 | 人大金仓数据库测评
人大金仓数据库,全称为金仓数据库管理系统KingbaseES(简称:金仓数据库或KingbaseES),是北京人大金仓信息技术股份有限公司自主研制开发的具有自主知识产权的通用关系型数据库管理系统。以下是关于人大金仓数据库的详细介绍:
-
产品特点:
-
高兼容、高可靠、高性能、高扩展、高安全、易使用和易管理。
-
是唯一入选国家自主创新产品目录的数据库产品。
-
在国家电网、五大发电、三桶油、运营商、金融、铁路、轨交、医疗等60多个行业的关键应用国产化项目中得到广泛应用。
-
-
技术特性:
-
容错:提供可在电力、金融、电信等核心业务系统中久经考验的容错功能体系,确保数据库7×24小时不间断服务。
-
应用迁移:提供智能便捷的数据迁移工具,实现无损、快速数据迁移;支持主流数据库的语法,如Oracle、SQL Server、MySQL等,实现无损、平滑、快速迁移。
-
设计:提供了全新设计的集成开发环境(IDE)和集成管理平台,扩展性强,支持基于读写分离的负载均衡技术。
-
-
版本信息:
-
最新版本为KingbaseES V8,在系统的可靠性、可用性、性能和兼容性等方面进行了重大改进。
-
支持多种操作系统和硬件平台,如Unix、Linux、Windows等操作系统,以及X86、X86_64及国产龙芯、飞腾、申威等CPU硬件体系结构。
-
设计并实现了企业版、标准版、专业版等多类版本,满足不同业务需求。
-
-
行业应用:
-
金仓数据库产品广泛服务于电子政务、国防军工、能源、运营商、金融等60余个关键行业。
-
在国家电网调度系统稳定运行12年,支撑某中央部委稳定替代Oracle,承载日常3000+业务人员办公,整体性能提升67%等。
-
-
市场地位:
-
在中国数据库流行度排行榜中,人大金仓排名显著上升,以545.64的分数荣登榜单第三。
-
综上所述,人大金仓数据库凭借其先进的技术特性、丰富的版本选择、广泛的应用场景以及显著的市场地位,成为了国内数据库领域的佼佼者。(来自文心一言生成)
Kingbase数据库是信创项目常见的数据库之一,在政府项目会见的比较多,是比较常见的三个国产数据库之一(另外两个是达梦数据库和海量数据库)。主要难点在于根据版本的不同,查询的语句会有些许的不同。非常推荐大家有任何问题找人大金仓数据库的客服人员进行咨询或者查看他们的产品文档:https://help.kingbase.com.cn/v8/safety/safety-guide/index.html#kingbasees
本文以三级等保为环境,系统版本会分为v8r3和v8r6,简单讲述一下人大金仓数据库的测评
一、身份鉴别
a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换。
这一项的测评,根据28448测评要求,我们需要确认以下几点:
1、应核查用户在登录时是否采用了身份鉴别措施;
2、应核查用户列表确认用户身份标识是否具有唯一性;
3、应核查用户配置信息或测试验证是否不存在空口令用户
4、应核查用户鉴别信息是否具有复杂度要求并定期更换,
人大金仓数据库是通过用户名+口令去做身份鉴别的,这点所有的数据库都一样。
并且在产品文档中,对用户名的规约做了说明
并且口令应该也是不能为空的
口令复杂度即你在设置口令时口令需要遵循的规则,通常由口令最小长度、口令
关于口令复杂度的设置,产品文档做了相关说明
参数名 | 取值范围 | 默认值 | 描述 |
---|---|---|---|
passwordcheck.enable | true/false | false | 密码复杂度功能开关,默认为关闭状态 |
passwordcheck.password_length | [8,63] | 9 | 密码的最小长度 |
passwordcheck.password_condition_letter | [2,61] | 2 | 密码至少包含几个小写字母 |
passwordcheck.password_condition_digit | [2,61] | 2 | 密码至少包含几个大写字母 |
passwordcheck.password_condition_punct | [0,59] | 0 | 密码至少包含几个特殊字符 |
我们可以通过以下的sql进行查询,判断适用性:
show passwordcheck.password_length;
show passwordcheck.password_condition_letter;
show passwordcheck.password_condition_digit;
show passwordcheck.password_condition_punct;
最后是口令有效期,这个参数关乎这多久换一次口令,也是等保基线检查比较常见的参数,产品文档对此也做了相关说明:
参数名 | 取值范围 | 默认值 | 描述 | 备注 |
---|---|---|---|---|
identity_pwdexp.password_change_interval | [1,INT_MAX] | 30 | 密码有效期 | v8r6及以后 |
password_change_interval | [1,INT_MAX] | 30 | 密码有效期 | v8r6之前 |
在v8r6之前的版本,我们可以通过以下sql去查询:
show password_change_interval;
在v8r6版本,通过以下sql去查询:
show identity_pwdexp.password_change_interval;
如果以上所有参数都配置了,则本测评项为符合,否则为部分符合或者符合。
b)应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施。
根据28448测评要求,我们需要确认以下几点:
-
应核查是否配置并启用了登录失败处理功能;
-
应核查是否配置并启用了限制非法登录功能,非法登录达到一定次数后采取特定动作,如账户锁定等;
-
应核查是否配置并启用了登录连接超时及自动退出功能;
登录失败处理策略,说人话就是输错几次密码锁定多久
人大金仓数据库的登录失败处理策略是由sys_audlog.max_error_user_connect_times
用户登录失败次数的最大值界限来限定的,error_user_connect_times的最大取值,取值范围为 [0,INT_MAX],缺省为2147483647。
参数名 | 取值范围 | 默认值 | 描述 | 备注 |
---|---|---|---|---|
sys_audlog.max_error_user_connect_times | [0,INT_MAX] | 2147483647 | 用户登录失败次数的最大值界限 | v8r6及以后 |
sys_audlog.max_error_user_connect_times | [0,INT_MAX] | 0 | 允许用户连续登录失败的最大次数 | v8r6及以后 |
error_user_connect_interval | [0,INT_MAX] | 0 | 用户被锁定时间 | v8r6及以后 |
max_error_user_connect_times | [0,INT_MAX] | 2147483647 | 用户登录失败次数的最大值界限 | v8r6以前 |
max_error_user_connect_times | [0,INT_MAX] | 0 | 允许用户连续登录失败的最大次数 | v8r6以前 |
sys_audlog.error_user_connect_interval | [0,INT_MAX] | 0 | 用户被锁定时间 | v8r6以前 |
因此我们可以使用以下sql语句去查询相关参数:
show sys_audlog.error_user_connect_times;
show sys_audlog_max_error_user_connect_times;
show sys_audlog.error_user_connect_interval;
不过在v8r6以前,sql长这样:
show error_user_connect_times;
show max_error_user_connect_times;
show error_user_connect_interval;
超时退出参数,也就是你没有操作多久会断开会话,在人大金仓数据库中,是由client_idle_timeout
参数进行控制,具体如下:
参数名 | 取值范围 | 默认值 | 描述 |
---|---|---|---|
client_idle_timeout | [0,1800] | 0 | 客户端最大空闲时间,单位是秒,超时需要重新连接。0为关闭功能。 |
可以通过以下sql进行查询:
show client_idle_timeout;
如果以上两个参数都进行了配置,那么本测评项符合,不然就是部分符合或者不符合。
c)当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听;
在28448中,这项是这么要求的:核查是否采用加密等安全方式对系统进行远程管理,防止鉴别信息在网络传输过程中被窃听。
主要是查看被测数据库有没有对数据传输进行加密,一般是看SSL有没有开启
KingbaseES本地支持使用SSL连接加密客户端/服务器通信以提高安全性。
libkci读取系统范围的OpenSSL配置文件。默认情况下,这个文件被命名为openssl.cnf并且位于openssl version -d所报告的目录中。可以通过设置环境变量OPENSSL_CONF把这个默认值覆盖为想要的配置文件的名称。
这个,没有直接的sql语句可以查询,和oracle类似,我们需要在服务器上查看人大金仓数据库的配置文件,去查看ssl相关配置
如果只是查看ssl是否开启而不是查看具体配置,可以通过pg的一个sql查看ssl是否开启
show ssl;
如果返回值为on,证明ssl已经开启
但是如果要查看证书的话,那就需要去查看相关的配置了。此处不再赘述。有兴趣的同僚自行查看安全手册的第五章数据安全传输以及第二十章SSL支持,里面有详细的描述
d) 应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现。
截至本文完稿前应该还没有数据库能够实现双因子。云平台那个用户名+密码+动态OTP我感觉应该是算的但是前辈们说最多给部分符合。
二、访问控制
a) 应对登录的用户分配账户和权限;
在28448中,是这么要求的:
-
应核查是否为用户分配了账户和权限及相关设置情况;
-
应核查是否已禁用或限制匿名、默认账户的访问权限;
在KingbaseES中,除了在系统初始化过程中可以创建的三个用户:数据库管理员、安全管理员、审计管理员外,还可以创建普通用户来访问数据库,运行数据库应用。为了方便,这三个初始化用户也可以简称为管理员、审计员、安全员。
因此,如果不去修改默认配置的话,人大金仓数据库是能够实现等保上的三权分立的。
b) 应重命名或删除默认账户,修改默认账户的默认口令;
在28448中,是这么要求的:
-
应核查是否已经重命名默认账户或默认账户已被删除;
-
应核查是否已修改默认账户的默认口令;
人大金仓数据库在初始化时会生成三个默认账户,分别是系统管理员system、安全管理员sso和安全审计员sao,核查一下有没有更改口令。
c) 应及时删除或停用多余的、过期的账户,避免共享账户的存在;
根据上一项的检查结果,并与配合人员访谈各在用账户的使用情况。
d) 应授予管理用户所需的最小权限,实现管理用户的权限分离;
根据产品文档的描述,人大金仓数据库已经做到了权限分离的要求。
e) 应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则;
此项默认符合。
f) 访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级;
默认符合。
g)应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问;
默认不符合。
三、安全审计
a) 应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计;
根据28448的要求,本项的核查点如下:
1、应核查是否开启了安全审计功能;
2、应核查安全审计范围是否覆盖到每个用户;应核查是否对重要的用户行为和重要安全事件进行审计
KingbaseES的审计设置分为三种类型:服务器事件审计、语句审计、模式对象审计。
-
事件审计
审计数据库服务器发生的事件,包含以下几种:数据库服务器的启动、数据库服务器的停止、数据库服务器配置文件的重新加载、用户登录、用户登出。简称为:服务器级审计或服务器审计。 -
语句级别审计
也称为 "STATEMENT AUDITING",指在 DBMS 范围内,对DBMS拥有的结构或模式对象进行操作时引发的事件进行审计,此类结构或模式对象并不指具体的某个结构或模式对象,而是一类结构或模式对象的泛称。通常,包括 DBMS 提供的 DDL、DML、DQL、DCL、TCL 等语句引发的事件。简称为:语句级审计或语句审计。 -
模式对象级别审计
也称为 "SCHEMA OBJECT AUDITING",指在某个确定的模式对象上进行 SELECT 或 DML 操作时引发的事件进行审计。模式对象包括表、视图、物化视图、过程、函数、序列。模式对象不包括有依附关系的对象,如依附于表的索引、约束、触发器、分区表等。简称为:模式对象级审计或对象审计。
如果要达到完全符合,那么需要引入第三方数据库审计
一般来说,开启自身审计只能给部分符合,不过kingbase的审计功能如果全部开启时可以给符合的,但审计全开会极大影响数据库的性能,请务必和客户沟通好。
kingbase的审计参数如下:
查看sql语句如下:
show sysaudit.enable;
show sysaudit.userevent;
show sysaudit.syntaxerror;
show sysaudit.serverevent;
b) 审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息;
在28448中,这一项是这么要求的:
应核查审计记录信息是否包括事件的日期和时间、主体标识、客体标识、事件类型、事件是否成功及其他与审计相关的信息。
如果引入了数据库审计系统,这里就写数据库审计系统的日志内容;如果开启的是自身审计,则可以参考下表:
列名 | 说明 |
---|---|
session_id | 会话id |
proc_id | 进程号 |
vxid | 虚事务id |
xid | 事务id |
user_id | 用户id |
username | 用户名 |
remote_addr | ip地址/端口 |
db_id | 数据库id |
db_name | 会话id |
rule_id | 审计策略编号 |
rule_type | 审计类型 |
opr_type | 操作类型 |
obj_type | 对象类型 |
schm_id | 模式id |
schm_name | 模式名 |
obj_id | 对象id |
obj_name | 对象名 |
sqltext | SQL文本 |
params | 参数 |
errcode | SQLSTATE错误码 |
errmsg | 错误消息内容 |
audit_ts | 操作时间 |
result | 结果,操作成功是success,失败是failure |
record_type | 审计记录类型(预留) |
aud_client | 客户端名字 |
server_type | 集群时服务器类型,M是主机,S是备机 |
-
数据库审计员sao需要查询视图sysaudit_record_sao,可以查看超级用户(包括数据库管理员system)和数据库安全员sso的审计日志
select * from sysaudit_record_sao; -
数据库安全员sso需要查询视图sysaudit_record_sso,可以查看普通用户和数据库审计员sao的审计日志
select * from sysaudit_record_sso;
c) 应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等;
根据28448的要求,应核查是否采取了保护措施对审计记录进行保护;应核查是否采取技术措施对审计记录进行定期备份,并核查其备份策略。
在kingbaseES中,审计记录可以通过手动调用函数或者设置自动转储参数的方式进行转储, 转储之前要提前设置转储目录, 否则会转储失败。不推荐将转储目录放在data目录下。
查看的sql如下:
show sysaudit.auditlog_dump_di;
至于日志保护,kingbase自身只有sso和sao的用户可以查看审计日志,能够满足测评项要求。
d) 应对审计进程进行保护,防止未经授权的中断。
根据28448的要求,:应测试验证通过非审计管理员的其他账户来中断审计进程,验证审计进程是否受到保护。
KingbaseES数据库中对审计功能设置了开关。审计功能关闭时,数据库不会发生审计动作,也无法将审计设置应用到数据库中。审计员(sao)如果要使 KingbaseES 系统中的审计设置生效,必须打开该审计开关。
-
在KingbaseES启动之前,通过修改 kingbase.conf 文件,将 sysaudit.enable 设置为on(或off)
-
在KingbaseES启动后,以审计员用户连接数据库,利用ALTER SYSTEM命令将 sysaudit.enable 设置为on | off。打开(或关闭)审计开关,重载配置后,数据库系统中的审计功能立即生效(或失效)。
打开(或关闭)审计开关并重载的命令:
ALTER SYSTEM SET sysaudit.enable = on | off;
CALL sys_reload_conf();
可以试试使用非审计员账户执行。
四、入侵防范
a) 应遵循最小安装的原则,仅安装需要的组件和应用程序;
根据28448的要求,我们应该核查下列内容:
-
1)应核查是否遵循最小安装原则:
-
2)应核查是否未安装非必要的组件和应用程序
kingbaseES拥有非常多的扩展插件,可以通过下列命令查询安装的扩展插件:
\dx
b) 应关闭不需要的系统服务、默认共享和高危端口;
这一项给不适用。数据库不涉及。
c) 应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制;
根据28448的要求,我们需要核查配置文件或参数是否对终端接入范围进行限制。
在kingbaseES中,有一个强身份认证的功能,开启后可以对身份鉴别进行强认证,其中就有对ip地址段进行限制的配置。
可以通过查看sys_hba.conf
配置文件去查看相关的配置信息,具体可参考:https://help.kingbase.com.cn/v8.6.7.24/safety/safety-guide/Managing-Strong-Authentication.html?highlight=地址 的6.2章节
d) 应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求;
对数据库来说该项直接不适用。一般是应用或者管理软件才会有这一项。
e) 应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞;
该项需结合漏扫,是否定期进行漏扫,具有漏扫报告、初测是否发现高风险漏洞,复测后高风险漏洞是否被修补。
f) 应能够检测到对重要节点进行入侵的行为,并在发生严重入侵事件时提供报警。
数据库不涉及此项,不适用。
五、恶意代码防范
应采用免受恶意代码攻击的技术措施或主动免疫可信验证机制及时识别入侵和病毒行为,并将其有效阻断。
数据库不涉及此项,直接不适用。
六、可信验证
可基于可信根对计算设备的系统引导程序、 系统程序、重要配置参数和应用程序等进行可信验证,并在应用程序的关键执行环节进行动态可信验证,在检测到其可信性受到破坏后进行报警,并将验证结果形成审计记录送至安全管理中心。
直接不符合。
七、数据完整性
a)应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;
传输完整性,一般看SSL有没有开就行。
b) 应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等。
在kingbaseES中,关于存储加密的算法的描述如下:
-
通过在每个数据块头增加"数据水印",KingbaseES实现了数据存储过程中的完整性校验和保护。每次读磁盘时,自动进行数据水印校验。每次写磁盘时,自动更新数据水印。
-
数据校验支持CRC、SM3、SM3_HMAC算法,可以在初始化数据目录时指定使用的校验算法。此外,KingbaseES还支持国密算法校验。
八、数据保密性
a)应采用密码技术保证重要数据在传输过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等;
传输保密性,一般看SSL有没有开就行。
b)应采用密码技术保证重要数据在存储过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等。
传输保密性,kingbaseES数据库有一个手动加密的机制,可以自行设置密码算法对敏感数据进行加密,详见https://help.kingbase.com.cn/v8/safety/safety-guide/data-access-protect.html?highlight=加密#safety-safety-guide-data-access-protect--page-root,但是默认的加密算法暂时未知,还在查找产品文档中。
九、数据备份恢复
a)应提供重要数据的本地数据备份与恢复功能;
咨询甲方备份策略和备份恢复测试相关。
b)应提供异地实时备份功能,利用通信网络将重要数据实时备份至备份场地;
需要注意的是三级要求的异地备份是实时备份。
c)应提供重要数据处理系统的热冗余,保证系统的高可用性。
看所在服务器是否集群部署。
十、剩余信息保护
a) 应保证鉴别信息所在的存储空间被释放或重新分配前得到完全清除;
退出后需要重新输入用户名密码的话直接给符合。
b) 应保证存有敏感数据的存储空间被释放或重新分配前得到完全清除。
这个需要问甲方说有没有针对存放敏感信息的存储介质做废弃处理。比如建立敏感数据的擦除机制,硬盘报废后进行物理毁坏处理等等。
给大家的福利
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
1️⃣零基础入门
① 学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
② 路线对应学习视频
同时每个成长路线对应的板块都有配套的视频提供:
因篇幅有限,仅展示部分资料
2️⃣视频配套资料&国内外网安书籍、文档
① 文档和书籍资料
② 黑客技术
因篇幅有限,仅展示部分资料
4️⃣网络安全面试题
5️⃣汇总
所有资料 ⚡️ ,朋友们如果有需要全套 《网络安全入门+进阶学习资源包》,扫码获取~
相关文章:

等保2.0 | 人大金仓数据库测评
人大金仓数据库,全称为金仓数据库管理系统KingbaseES(简称:金仓数据库或KingbaseES),是北京人大金仓信息技术股份有限公司自主研制开发的具有自主知识产权的通用关系型数据库管理系统。以下是关于人大金仓数据库的详细…...

AIGC赋能智慧农业:用AI技术绘就作物生长新蓝图
( 于景鑫 国家农业信息化工程技术研究中心)随着人工智能技术的日新月异,AIGC(AI-Generated Content,AI生成内容)正在各行各业掀起一场革命性的浪潮。而在智慧农业领域,AIGC技术的应用也正迸发出耀眼的火花。特别是在作物生长管理方面,AIGC有望彻底改变传…...
yolov8蒸馏(附代码-免费)
首先蒸馏是什么? 模型蒸馏(Model Distillation)是一种用于在计算机视觉中提高模型性能和效率的技术。在模型蒸馏中,通常存在两个模型,即“教师模型”和“学生模型”。 为什么需要蒸馏? 在不增加模型计算…...

Flink-StarRocks详解:第五部分查询数据湖(第55天)
系列文章目录 4.查询数据湖 4.1 Catalog 4.1.1 概述 4.1.1.1 基本概念 4.1.1.2 Catalog 4.1.1.3 访问Catalog 4.1.2 Default catalog 4.1.3 External Catalog 4.2 文件外部表 4.2.1 使用限制 4.2.2 开源版本语法 4.2.3 阿里云版本 5. 查询及优化 文章目录 系列文章目录前言4.查…...

【MySQL】常用数据类型
目录 数据类型 数据类型分类 数值类型 tinyint类型 bit类型 小数类型 float decimal 字符串类型 char varchar 日期和时间类型 enum和set 数据类型 数据类型分类 数值类型 tinyint类型 tinyint类型只占用一个字节类似于编程语言中的字符char。有带符号和无符号两…...
创建第一个rust tauri项目
安装nodejs curl -sL https://deb.nodesource.com/setup_20.x | sudo bash node -vproxychains4 npm create tauri-applatest✔ Project name tauri-app ✔ Choose which language to use for your frontend TypeScript / JavaScript - (pnpm, yarn, npm, bun) ✔ Choose yo…...

【课程总结】day19(中):Transformer架构及注意力机制了解
前言 本章内容,我们将从注意力的基础概念入手,结合Transformer架构,由宏观理解其运行流程,然后逐步深入了解多头注意力、多头掩码注意力、融合注意力等概念及作用。 注意力机制(Attension) 背景 深度学…...

4.4 标准正交基和格拉姆-施密特正交化
本节的两个目标就是为什么和怎么做(why and how)。首先是知道为什么正交性很好:因为它们的点积为零; A T A A^TA ATA 是对角矩阵;在求 x ^ \boldsymbol{\hat x} x^ 和 p A x ^ \boldsymbol pA\boldsymbol{\hat x} pAx^ 时也会很简单。第二…...
spring事务的8种失效的场景,7种传播行为
Spring事务大部分都是通过AOP实现的,所以事务失效的场景大部分都是因为AOP失效,AOP基于动态代理实现的 1.方法没有被public修饰 原因:Spring会为方法创建代理、AOP添加事务通知前提条件是该方法时public的。 2.类没有被Spring容器所托管 …...

进程的虚拟内存地址(C++程序的内存分区)
严谨的说法: 一个C、C程序实际就是一个进程,那么C的内存分区,实际上就是一个进程的内存分区,这样的话就可以分为两个大模块,从上往下,也就是0地址一直往下,假如是x86的32位Linux系统,…...

英特尔移除超线程与AMD多线程性能对比
#### 英特尔Lunar Lake架构取消超线程 在英特尔宣布Lunar Lake架构时,一个令人惊讶的消息是下一代轻薄优化架构将移除Hyper-Threading(超线程,简称SMT)。而AMD最新的Zen 5/Zen5C多线程基准测试结果显示,该特性依然为A…...

定期自动巡检,及时发现机房运维管理中的潜在问题
随着信息化技术的迅猛发展,机房作为企业数据处理与存储的核心场所,其运维管理的复杂性和挑战性也与日俱增。为确保机房设备的稳定运行和业务的连续性,运维团队必须定期进行全面的巡检。然而,传统的手工巡检方式不仅效率低下&#…...
八股文(一)
1. 为什么不使用本地缓存,而使用Redis? Redis相比于本地缓存(如JVM中的缓存)有以下几个显著优势: 高性能与低延迟:Redis是一个基于内存的数据库,其读写性能非常高,通常可以达到几万…...
灵茶八题 - 子数组 ^w^
灵茶八题 - 子数组 w 题目描述 给你一个长为 n n n 的数组 a a a,输出它的所有连续子数组的异或和的异或和。 例如 a [ 1 , 3 ] a[1,3] a[1,3] 有三个连续子数组 [ 1 ] , [ 3 ] , [ 1 , 3 ] [1],[3],[1,3] [1],[3],[1,3],异或和分别为 1 , 3 , …...

git clone private repo
Create personal access token Clone repo $ git clone https://<user_name>:<personal_access_tokens>github.com/<user_name>/<repo_name>.git...

vue3+ts+pinia+vant-项目搭建
1.pnpm介绍 npm和pnpm都是JavaScript的包管理工具,用于自动化安装、配置、更新和卸载npm包依赖。 pnpm节省了大量的磁盘空间并提高了安装速度:使用一个内容寻址的文件存储方式,如果多个项目使用相同的包版本,pnpm会存储单个副本…...

自动化测试概念篇
目录 一、自动化 1.1 自动化概念 1.2 自动化分类 1.3 自动化测试金字塔 二、web自动化测试 2.1 驱动 2.2 安装驱动管理 三、selenium 3.1 ⼀个简单的web自动化示例 3.2 selenium驱动浏览器的工作原理 一、自动化 1.1 自动化概念 在生活中: 自动洒水机&am…...
Mojo值的生命周期(Life of a value)详解
到目前为止,我们已经解释了 Mojo 如何允许您使用 Mojo 的所有权模型构建内存安全的高性能代码而无需手动管理内存。但是,Mojo 是为 系统编程而设计的,这通常需要对自定义数据类型进行手动内存管理。因此,Mojo 允许您根据需要执行此操作。需要明确的是,Mojo 没有引用计数器…...

java对接kimi详细说明,附完整项目
需求: 使用java封装kimi接口为http接口,并把调用kimi时的传参和返回数据,保存到mysql数据库中 自己记录一下,以做备忘。 具体步骤如下: 1.申请apiKey 访问:Moonshot AI - 开放平台使用手机号手机号验证…...

鸿蒙媒体开发【基于AVCodec能力的视频编解码】音频和视频
基于AVCodec能力的视频编解码 介绍 本实例基于AVCodec能力,提供基于视频编解码的视频播放和录制的功能。 视频播放的主要流程是将视频文件通过解封装->解码->送显/播放。视频录制的主要流程是相机采集->编码->封装成mp4文件。 播放支持的原子能力规…...

linux之kylin系统nginx的安装
一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源(HTML/CSS/图片等),响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址,提高安全性 3.负载均衡服务器 支持多种策略分发流量…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...

并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

抽象类和接口(全)
一、抽象类 1.概念:如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象,这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法,包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中,⼀个类如果被 abs…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...