KingbaseES数据库用户管理:从CREATE USER到权限控制与安全运维
1. 从“CREATE USER”说起为什么数据库用户管理是DBA的第一课最近在几个KingbaseES的项目上做技术支持发现一个挺有意思的现象很多刚接触国产数据库的朋友包括一些从Oracle、MySQL转过来的资深开发在创建用户这个最基础的操作上反而容易犯迷糊。他们要么直接用默认的超级用户SYSTEM在KingbaseES里相当于Oracle的SYS或MySQL的root去跑所有业务要么创建的用户权限给得过大把CREATE TABLE、DROP ANY TABLE这种高危权限随手就赋出去了。等到项目上线前做安全审计或者等保测评的时候一看用户权限清单头都大了整改起来牵一发而动全身。这其实不怪大家因为“创建用户”这四个字听起来太简单了简单到容易被忽略。在图形化工具里点几下鼠标的事背后的门道却不少。尤其是在像KingbaseES这类兼容Oracle语法的国产数据库中一个用户USER不仅仅是一个登录名它背后关联着同名的模式SCHEMA、默认表空间、资源限制、密码策略等一系列属性。你创建的不是一个孤立的账号而是一整套数据访问和存储的“工作空间”与“身份契约”。今天我就结合自己踩过的坑和项目里的实际需求把KingbaseES里创建用户这件事掰开揉碎了讲清楚从一句简单的CREATE USER命令延伸到用户管理的完整生命周期和最佳实践。2. 核心命令拆解CREATE USER的每一个参数都意味着什么很多人创建用户的起点可能就是一句CREATE USER test IDENTIFIED BY password;。这没错能跑起来但这就好比盖房子只打了地基四面墙和屋顶都没装。我们先来看看一个相对完整的创建语句应该包含哪些部分以及每个部分的实际影响。2.1 身份认证与密码管理不只是设个密码那么简单IDENTIFIED BY是最基础的密码认证方式。但在生产环境我们绝不能止步于此。-- 基础创建 CREATE USER app_user IDENTIFIED BY ‘StrongPass123!’; -- 更推荐的做法指定密码复杂度策略和有效期 CREATE USER app_user IDENTIFIED BY ‘StrongPass123!’ PASSWORD EXPIRE; -- 强制用户首次登录修改密码 -- 或者如果数据库启用了密码策略通过插件或配置创建时就可以声明 CREATE USER sec_user IDENTIFIED BY ‘Abc123!#’ PASSWORD REUSE_MAX 10 -- 密码不能与最近10次使用的重复 PASSWORD REUSE_TIME 30 -- 密码30天内不能重复使用 PASSWORD_LOCK_TIME 1 -- 密码错误锁定1天 FAILED_LOGIN_ATTEMPTS 5; -- 连续错误5次锁定账户这里有个关键点KingbaseES的密码策略强度往往依赖于数据库的初始化参数和安全插件。比如PASSWORD_VERIFY_FUNCTION参数可以指向一个自定义的函数用来校验密码的复杂度必须包含大小写、数字、特殊字符不能包含用户名等。在创建用户前最好先确认一下实例级别的密码策略配置否则你设定的规则可能不生效。注意PASSWORD EXPIRE这个选项非常实用特别是在为同事或合作伙伴创建临时账户时。它能确保对方第一次登录就必须改密码避免了初始密码泄露带来的长期风险。我习惯在创建所有非个人长期使用的账户时都加上这个选项。2.2 默认表空间与配额用户的“数据地盘”规划如果不指定用户创建的表、索引等对象默认会存放在数据库的默认表空间通常是SYSTEM或MAIN。把用户数据往系统表空间里塞是DBA的大忌会严重影响系统性能和管理。CREATE USER data_user IDENTIFIED BY ‘password’ DEFAULT TABLESPACE users_data -- 指定默认表空间 QUOTA 500M ON users_data -- 在users_data表空间上有500M配额 QUOTA 100M ON users_index; -- 在users_index表空间上有100M配额DEFAULT TABLESPACE这定义了用户的“主战场”。以后这个用户执行CREATE TABLE t1 (id int);表t1就会建在users_data表空间上。QUOTA这是用户的“地盘大小”。如果不设置配额用户默认是无限制的UNLIMITED这可能带来磁盘被某个用户瞬间写满的风险。合理的做法是根据业务预估分配明确的配额。配额可以设置在多个表空间上方便数据分类存储例如数据、索引、LOB大对象分开。这里有个实操中的大坑你可能会遇到“ORA-00959: 表空间 ‘USERS_DATA’ 不存在”这样的错误。这是因为KingbaseES虽然语法兼容Oracle但表空间需要先创建。执行创建用户命令前务必确保DEFAULT TABLESPACE和QUOTA ON后面跟的表空间名是真实存在的。2.3 临时表空间排序与哈希的“临时工作间”当用户执行需要大量内存排序如ORDER BY,GROUP BY或哈希连接的操作而内存SORT_AREA_SIZE等不足时中间结果会溢出到磁盘这个磁盘位置就是临时表空间。CREATE USER query_user IDENTIFIED BY ‘password’ DEFAULT TABLESPACE users_data TEMPORARY TABLESPACE temp; -- 指定临时表空间不指定的话用户会使用数据库的默认临时表空间。将临时表空间与数据表空间分离是性能调优的基础步骤之一可以避免临时段的I/O操作影响数据段的读写性能。通常我们会单独创建一块高速磁盘如SSD来存放临时表空间文件。2.4 资源限制与配置文件防止“问题SQL”拖垮整个库这是用户管理中高级但至关重要的部分。你可以通过PROFILE配置文件来限制用户对系统资源的使用。首先创建一个配置文件CREATE PROFILE app_profile LIMIT SESSIONS_PER_USER 10 -- 最多10个并发会话 CPU_PER_SESSION UNLIMITED -- 单个会话CPU时间不限 CPU_PER_CALL 3000 -- 单次调用解析、执行、获取最多3000/100秒30秒CPU时间 CONNECT_TIME 120 -- 会话最长连接120分钟 IDLE_TIME 30 -- 会话空闲30分钟后自动断开 LOGICAL_READS_PER_SESSION UNLIMITED LOGICAL_READS_PER_CALL 10000 -- 单次调用最多读取10000个数据块 COMPOSITE_LIMIT UNLIMITED PRIVATE_SGA 16K; -- 私有SGA区大小然后将用户关联到这个配置文件CREATE USER heavy_user IDENTIFIED BY ‘password’ PROFILE app_profile;这个配置的意义在于“隔离”和“止损”。想象一下某个数据分析师写了个不带条件的全表交叉连接如果没有CPU_PER_CALL或LOGICAL_READS_PER_CALL的限制这条SQL可能会耗尽CPU和I/O导致其他关键业务交易全部卡死。通过配置文件我们可以将这类“问题查询”的影响控制在一个用户范围内避免局部问题演变成全局故障。3. 权限授予的艺术从“最小权限原则”到实战授权模型创建用户只是给了它一个身份它能做什么完全由授予的权限PRIVILEGE和角色ROLE决定。这里是最容易出问题的地方。3.1 系统权限 vs 对象权限系统权限针对数据库本身操作的权力如CREATE SESSION连接数据库、CREATE TABLE建表、CREATE VIEW建视图、DROP ANY TABLE可删任何用户的表等。这类权限威力巨大授予需极其谨慎。对象权限针对特定数据库对象如表、视图、序列、存储过程的操作权力如SELECT ON schema_a.table1,INSERT ON schema_b.table2,EXECUTE ON schema_c.proc1。黄金法则遵循最小权限原则。用户只应获得完成其工作所必需的最小权限。3.2 使用角色进行权限聚合与管理直接给用户赋一堆权限是灾难性的难以维护和审计。正确的做法是使用角色ROLE。-- 1. 创建角色 CREATE ROLE app_read_only; CREATE ROLE app_data_writer; CREATE ROLE app_developer; -- 2. 将权限授予角色 GRANT CREATE SESSION TO app_read_only; GRANT SELECT ON sales.orders TO app_read_only; GRANT SELECT ON sales.customers TO app_read_only; GRANT app_read_only TO app_data_writer; -- 继承只读权限 GRANT INSERT, UPDATE ON sales.orders TO app_data_writer; GRANT INSERT, UPDATE ON sales.customers TO app_data_writer; GRANT app_data_writer TO app_developer; -- 继承读写权限 GRANT CREATE TABLE, CREATE VIEW IN SCHEMA sales TO app_developer; -- 3. 将角色授予用户 GRANT app_read_only TO report_user; GRANT app_data_writer TO etl_user; GRANT app_developer TO dev_user;这样做的好处显而易见权限逻辑清晰app_read_only角色代表什么权限一目了然。维护方便如果需要修改所有报表用户的权限只需修改app_read_only角色所有拥有该角色的用户权限会自动更新。动态权限控制可以通过SET ROLE命令让用户在会话中启用或禁用特定角色实现更灵活的权限切换。减少错误避免了直接给用户赋权时可能出现的遗漏或误操作。3.3 实战中的授权场景与避坑指南场景一为应用创建连接用户应用通常只需要连接和操作特定表。CREATE USER web_app IDENTIFIED BY “complex_app_password”; GRANT CREATE SESSION TO web_app; GRANT SELECT, INSERT, UPDATE, DELETE ON app_schema.users TO web_app; GRANT SELECT, INSERT ON app_schema.orders TO web_app; GRANT SELECT ON app_schema.products TO web_app; -- 通常不会授予DELETE权限逻辑删除用UPDATE状态字段实现 -- 绝对不要授予DROP ANY TABLE这类权限场景二创建只读查询用户用于BI报表、数据导出等。CREATE USER bi_user IDENTIFIED BY “password”; CREATE ROLE bi_read_role; -- 将多个模式下的表查询权限批量授予角色需循环或动态SQL此处简化 GRANT SELECT ON sales.* TO bi_read_role; -- 注意语法可能因版本而异可能需要遍历 GRANT SELECT ON finance.* TO bi_read_role; GRANT bi_read_role TO bi_user;坑点KingbaseES中直接GRANT SELECT ON schema.* TO role的语法可能不支持。通常需要写一个PL/SQL块遍历该模式下的所有表进行授权。这是一个脚本化的操作切忌在生产环境手动逐表操作。场景三开发人员权限管理开发人员需要建表、修改但绝不能影响他人或其他环境。CREATE USER dev_zhang IDENTIFIED BY “password” DEFAULT TABLESPACE dev_data; -- 授予其在个人模式或开发模式下的权限 GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE PROCEDURE TO dev_zhang; -- 或者更好的方式是创建一个开发角色 GRANT dev_role TO dev_zhang; -- 同时务必在配置文件中限制其资源消耗避免跑死测试库 ALTER USER dev_zhang PROFILE developer_profile;一个致命的疏忽忘记回收默认的PUBLIC权限。PUBLIC是一个特殊的角色所有用户都自动拥有它。有些系统权限或对象权限如果误授给了PUBLIC意味着所有用户都有了该权限。定期检查SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE ‘PUBLIC’;并清理不必要的授权是安全审计的重要一环。4. 用户管理的日常运维与故障排查创建用户不是一劳永逸的伴随着业务变化用户需要被修改、锁定、解锁甚至删除。4.1 用户状态管理-- 修改密码 ALTER USER app_user IDENTIFIED BY “NewStrongPass456!”; -- 账户锁定常用于员工离职或临时禁用 ALTER USER former_employee ACCOUNT LOCK; -- 账户解锁 ALTER USER app_user ACCOUNT UNLOCK; -- 密码过期强制修改 ALTER USER app_user PASSWORD EXPIRE; -- 修改默认表空间或配额数据迁移时用 ALTER USER data_user QUOTA 1G ON new_tablespace; ALTER USER data_user DEFAULT TABLESPACE new_tablespace; -- 注意修改默认表空间不会移动已存在的对象仅影响新对象。4.2 信息查询与审计作为DBA你必须知道去哪看用户信息。-- 查看所有用户基本信息 SELECT username, account_status, default_tablespace, temporary_tablespace, created FROM sys_user; -- 注意KingbaseES的系统视图可能是DBA_USERS需根据实际版本调整 -- 查看用户的系统权限 SELECT * FROM sys_user_sys_privs WHERE username ‘APP_USER’; -- 查看用户被授予的角色 SELECT * FROM sys_user_role_privs WHERE username ‘APP_USER’; -- 查看用户通过角色获得的权限需要关联查询较复杂 -- 查看用户的直接对象权限 SELECT owner, table_name, privilege, grantable FROM sys_tab_privs WHERE grantee ‘APP_USER’; -- 查看用户的资源配置 SELECT * FROM sys_user_resource_limits WHERE username ‘APP_USER’;这些视图是运维和排查问题的利器。比如当应用报错“ORA-01017: invalid username/password”时首先就应该去查ACCOUNT_STATUS看用户是不是被锁定了LOCKED或者密码过期了EXPIRED。4.3 常见故障排查场景场景“用户无法登录提示权限不足”检查账户状态SELECT account_status FROM sys_user WHERE username‘XXX’;是否为OPEN。检查是否拥有CREATE SESSION权限SELECT * FROM sys_user_sys_privs WHERE privilege‘CREATE SESSION’ AND username‘XXX’;。检查是否通过角色拥有该权限且角色是否为默认启用SELECT granted_role, default_role FROM sys_user_role_privs WHERE username‘XXX’;。场景“用户创建表失败提示表空间配额不足”检查用户在当前表空间的配额SELECT tablespace_name, bytes, max_bytes FROM sys_user_ts_quotas WHERE username‘XXX’;。MAX_BYTES为-1表示无限制否则就是配额值。如果配额已满需要增加配额ALTER USER xxx QUOTA 2G ON tablespace_name;。也可能是表空间本身已满需要检查表空间使用情况SELECT tablespace_name, sum(bytes)/1024/1024 used_mb FROM sys_segments GROUP BY tablespace_name;并与数据文件总大小比较。场景“用户执行查询异常缓慢怀疑被资源限制”检查用户关联的配置文件SELECT profile FROM sys_user WHERE username‘XXX’;。查看该配置文件的资源限制SELECT resource_name, limit FROM sys_profiles WHERE profile‘XXX_PROFILE’;。查看该用户当前会话的资源消耗情况可以关联V$SESSION和V$SESSTAT等动态性能视图具体视图名KingbaseES可能不同看是否有资源限制被触发。4.4 用户的删除与清理删除用户是一个危险操作因为它可以选择是否级联删除该用户拥有的所有对象。-- 最危险的方式删除用户及其所有对象 DROP USER cascade_user CASCADE; -- 安全做法先锁定或禁用确认无误后再删除 ALTER USER old_user ACCOUNT LOCK; -- 观察一段时间确认无业务影响后 DROP USER old_user; -- 或者如果用户拥有对象且需要保留对象可以先转移对象所有权再删除用户警告DROP USER ... CASCADE会直接删除该用户模式下的所有表、视图、索引、存储过程等数据对象且不可回滚除非在启用了闪回的数据集上并且操作在保留期内。执行前必须经过严格的审批和备份确认。我个人的铁律是生产环境删除用户永远不用CASCADE必须先手动清理或转移对象。5. 与操作系统用户的集成及安全加固考量在一些高安全要求或自动化运维场景下会考虑使用外部认证比如操作系统认证让用户通过操作系统身份直接登录数据库无需密码。CREATE USER ops$oracle_user IDENTIFIED EXTERNALLY; -- 或者使用特定的网络认证方式这要求数据库服务器和客户端之间具有可信的OS认证通道并且数据库参数REMOTE_OS_AUTHENT等需要相应配置。然而在大多数互联网或跨网络访问的场景下外部认证会引入安全风险并不推荐。更常见的做法是使用强密码认证并配合SSL/TLS对传输链路进行加密。安全加固是一个持续的过程围绕用户管理我们至少还应考虑定期修改密码通过配置文件中的PASSWORD_LIFE_TIME实现。密码复杂度启用密码验证函数。登录失败锁定通过FAILED_LOGIN_ATTEMPTS和PASSWORD_LOCK_TIME防止暴力破解。权限定期审计定期运行脚本检查是否有用户被授予了过高权限如DBA角色、DROP ANY TABLE等。最小化默认权限审查并回收PUBLIC角色上的不必要的权限。用户分类与隔离按照业务重要性、数据敏感性对用户进行分类不同类别的用户使用不同的表空间、配置文件和权限角色。创建用户这个看似简单的操作实际上是数据库安全、资源管理和运维规范的起点。它建立起的是一道道访问控制的闸门和资源消耗的护栏。在KingbaseES中由于其深厚的Oracle血缘这套用户权限体系既强大又复杂。理解并熟练运用它不仅能让你避免“数据库裸奔”的安全尴尬更能为系统的稳定、高效运行打下坚实的基础。下次再执行CREATE USER时不妨多花几分钟想想这个用户的“职责”是什么给它刚刚好的权限划定清晰的地盘和资源上限这才是专业DBA应有的素养。

相关新闻

多智能体协作与形式化验证:AI解决组合设计问题的实践探索

多智能体协作与形式化验证:AI解决组合设计问题的实践探索

1. 项目概述:当AI学会“左右互搏”来解数学题 最近在AI圈子里,“Agentic”(智能体化)和“Neurosymbolic”(神经符号)这两个词的热度是越来越高。简单来说,这代表了一种新的AI研究范式&#xff1…

2026/8/17 8:09:52 阅读更多 →
Python免费学习资源全解析:从零基础到项目实战的完整路径

Python免费学习资源全解析:从零基础到项目实战的完整路径

1. 项目概述:为什么免费资源是Python入门的最佳起点? 每次看到有朋友想学编程,尤其是Python,第一反应就是“要不要报个班?”。我的回答通常是:先别急着掏钱,互联网上免费的优质资源多到你看不完…

2026/8/17 8:09:52 阅读更多 →
研究生求职简历撰写指南:10大方向模板与STAR法则实战

研究生求职简历撰写指南:10大方向模板与STAR法则实战

1. 一份好简历,是研究生求职的“入场券”又到了毕业季,看着身边的研究生同学开始海投简历,你是不是也感到了一丝焦虑?手里攥着几年的研究成果,却不知道如何把它们变成一份能打动HR的“敲门砖”。我见过太多优秀的同学&…

2026/8/17 8:09:52 阅读更多 →

最新新闻

Unity中文显示方框?TextMeshPro字体资产创建与配置全攻略

Unity中文显示方框?TextMeshPro字体资产创建与配置全攻略

1. 问题现象与根源剖析 如果你在Unity编辑器里或者打包出来的游戏里,发现本该显示的中文字符,全都变成了一个个方框(俗称“豆腐块”),或者干脆什么都不显示,别慌,这几乎是每个Unity开发者&#…

2026/8/17 10:21:29 阅读更多 →
SPASM架构:如何解决大语言模型多轮对话中的角色漂移问题

SPASM架构:如何解决大语言模型多轮对话中的角色漂移问题

1. 项目缘起:从“角色扮演”到“稳定模拟”的对话生成挑战最近在折腾对话生成和智能体模拟相关的东西,发现一个挺有意思的痛点:想让一个AI角色在连续多轮对话中,始终保持稳定、一致的性格和背景设定,这事儿比想象中难得…

2026/8/17 10:21:29 阅读更多 →
LLM智能体如何构建诊断推理的“脚手架”:从信息结构化到引导性提问

LLM智能体如何构建诊断推理的“脚手架”:从信息结构化到引导性提问

1. 从“解题”到“结构化”:诊断推理中LLM智能体的角色跃迁 最近和几位在医疗教育和企业内训领域深耕的朋友聊天,大家不约而同地提到了一个现象:当学员或新员工面对一个复杂的诊断性问题时,比如分析一个棘手的临床病例&#xff0c…

2026/8/17 10:21:29 阅读更多 →
多智能体协同3D理解:从感知到认知的工业级应用实践

多智能体协同3D理解:从感知到认知的工业级应用实践

1. 从“看图说话”到“空间对话”:为什么3D理解需要多智能体协同? 最近在跟进一些前沿的视觉-语言模型应用时,我发现一个挺有意思的现象:大家好像都默认“3D理解”就是“给3D模型生成一段描述”。这其实是个不小的误解。想象一下&…

2026/8/17 10:21:29 阅读更多 →
Windows右键新建菜单丢失WPS文档选项的注册表修复全攻略

Windows右键新建菜单丢失WPS文档选项的注册表修复全攻略

1. 问题重现:当右键菜单里找不到“新建WPS文档” 如果你和我一样,日常工作重度依赖WPS Office,那么一个顺手、高效的右键菜单是提升生产力的关键。想象一下这个场景:你在整理项目文件夹,需要快速创建一个新的WPS文字文…

2026/8/17 10:21:29 阅读更多 →
LLM智能体导航能力评估与优化:从DAG基准测试到工程实践

LLM智能体导航能力评估与优化:从DAG基准测试到工程实践

1. 项目概述:一场关于智能体能力的“极限挑战”最近在AI圈子里,一个名为“The Amazing Agent Race”的基准测试火了。这个名字起得很有意思,它让我想起了以前看过的一档真人秀节目,一群参赛者环游世界,完成各种高难度任…

2026/8/17 10:20:28 阅读更多 →

日新闻

LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题

LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题

1. 项目概述:为什么异步调用是LabVIEW进阶的必修课? 如果你用LabVIEW做过稍微复杂点的项目,尤其是涉及界面响应、多任务并行或者硬件IO等待的场景,大概率遇到过这样的窘境:前面板点个按钮,整个程序就“卡死…

2026/8/17 0:00:08 阅读更多 →
LabVIEW异步调用实战:解决界面卡顿与并行处理难题

LabVIEW异步调用实战:解决界面卡顿与并行处理难题

1. 项目概述:为什么异步调用是LabVIEW进阶的必经之路如果你在LabVIEW里写过稍微复杂点的程序,尤其是涉及到界面响应、多任务并行或者硬件IO等待,大概率会遇到一个头疼的问题:程序“卡”住了。前面板点不动,进度条不更新…

2026/8/17 0:00:08 阅读更多 →
飞书局域网文件传输实战:3种方案实现高速点对点传输

飞书局域网文件传输实战:3种方案实现高速点对点传输

1. 项目概述:为什么要在局域网内用飞书传文件? 飞书作为一款主流的协同办公套件,其核心功能是围绕云端协作设计的。无论是文档、表格还是文件,通常的分享逻辑都是“上传到云端 -> 生成链接 -> 分享给同事”。这个流程在互联…

2026/8/17 0:00:08 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/17 2:58:27 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/17 2:58:30 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/17 2:58:32 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/16 6:00:23 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/16 6:00:24 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/16 6:00:27 阅读更多 →