数据库系统概论(十六)数据库安全性(安全标准,控制,视图机制,审计与数据加密)

数据库系统概论(十六)数据库安全性

  • 前言
  • 一、数据库安全性
    • 1. 什么是数据库安全性?
    • 2. 为何会存在安全问题?
  • 二、安全标准的发展
    • 1. 早期的“开拓者”:TCSEC标准
    • 2. 走向国际统一:CC标准
    • 3. TCSEC和CC标准有什么不同?
  • 三、数据库安全性控制
    • 1. 第一层防线:用户身份鉴别
    • 2. 第二层防线:存取控制(决定能看什么、做什么)
      • (1) 自主存取控制(DAC)
      • (2)数据库角色:批量管理权限的“快捷方式”
      • (3)强制存取控制(MAC):严防死守的密级管理
    • 3. 其他安全手段
    • 总结
  • 四、视图机制
    • 1. 为什么需要视图?
    • 2. 如何用视图实现安全控制?
    • 3. 核心优势
  • 五、审计
    • 1. 什么是审计?
    • 2. 审计有什么用?
    • 3. 审计的类型和适用场景
    • 4. 数据库对审计的支持
  • 六、数据加密
    • 1. 为什么需要数据加密?
    • 2. 加密的时机和方法
    • 3. 简单加密示例:凯撒密码(替换法)
    • 4. 数据库中的加密实现
    • 5. 总结三层安全手段
  • 七、其它安全性保护(了解就好)
    • 1. 推理控制
      • 1.1 什么是推理控制?
      • 1.2 为什么需要推理控制?
      • 1.3 常用的推理控制方法
    • 2. 经济学角度的安全考量:没有绝对安全,只有性价比最优
      • 2.1 为什么没有“绝对安全”的系统?
      • 2.2 什么是“经济上安全”的系统?
      • 2.3 如何应用经济学思维设计安全方案?


前言

  • 在前几期博客中,我们探讨了 SQL 连接查询,单表查询,嵌套查询,集合查询,基于派生表的查询,数据插入,修改与删除,空值的处理,视图技术等知识点。
  • 从本节开始,我们将深入讲解 SQL 中数据库安全性的知识点。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的数据库系统概论专栏
https://blog.csdn.net/2402_83322742/category_12911520.html?spm=1001.2014.3001.5482


一、数据库安全性

在这里插入图片描述

1. 什么是数据库安全性?

  • 数据库安全性就像是给数据库配备的“安全保镖”,其主要任务是防止非法用户对数据库进行访问,阻止非法操作导致的数据泄露、被篡改或者遭到破坏

举个简单的例子,银行的用户储蓄数据、医院的患者医疗档案等都属于敏感信息,必须通过数据库安全性措施来确保它们的安全。

2. 为何会存在安全问题?

数据库的显著特点之一是数据共享,但这种共享并非毫无条件。如果不加以限制,军事机密、企业的市场营销策略等敏感数据就可能被别有用心的人获取

  • 所以,数据共享必须建立在安全的基础之上,这就需要借助一系列的安全机制来实现

二、安全标准的发展

数据库安全问题日益受到关注,各国纷纷制定了相关的安全标准,这些标准的发展大致经历了以下几个阶段:
在这里插入图片描述

1. 早期的“开拓者”:TCSEC标准

  • 诞生背景:1985年,美国国防部发布了《可信计算机系统评估准则》(TCSEC),这是首个针对计算机系统安全的评估标准,后来又推出了针对数据库的扩展标准TDI(紫皮书)。
  • 安全级别划分(从低到高)
    • D级(最低保护):这类系统几乎没有任何安全机制,就像一个不设门禁的仓库,任何人都能随意进出。例如DOS系统,在安全性方面几乎没有专门的保障措施。
    • C1级(自主安全保护):实现了用户和数据的初步分离,允许用户自主设置权限,就好像给仓库上了一把普通的锁,只有拥有钥匙(权限)的人才能进入。现在的大多数商业系统基本都能达到这个级别。
    • C2级(受控存取保护):在C1级的基础上进一步细化,要求用户进行身份注册,就如同仓库管理员会记录每个进入者的身份,并且对操作进行审计。例如Windows 2000和Oracle 7就符合这个级别。
    • B级(强制存取控制):这是“安全产品”的级别,采用强制存取控制(MAC),就像仓库对不同重要程度的物品设置了不同的进入权限,只有符合特定级别的人才能接触相应的物品。其中:
      • B1级:要求对数据进行标记(如“机密”“公开”),并实施强制访问控制,例如Trusted Oracle 7数据库。
      • B2级:需要建立形式化的安全模型,对系统内的所有主体(用户、进程等)和客体(数据、文件等)都进行严格控制。
      • B3级:具备更强的审计和恢复能力,确保系统在出现问题时能够及时恢复。
    • A1级(最高级别):不仅要达到B3级的要求,还需要对系统的设计进行形式化验证,就像经过严格的数学证明一样,确保安全机制确实有效。

2. 走向国际统一:CC标准

在这里插入图片描述

  • 发展历程:由于各国的标准存在差异,1993年,美国、欧洲、加拿大等国家和地区联合开展了CC项目,旨在统一安全标准。1999年,CC成为国际标准(ISO 15408),2001年我国也采用其作为国家标准,如今它已成为评估信息产品安全性的主要标准。
  • 核心特点
    • 将安全要求分为两类
      • 安全功能要求:规定了产品需要具备哪些安全功能,例如访问控制、加密等。
      • 安全保证要求:关注产品的开发过程和测试,确保安全功能是可靠的。
    • 评估保证级(EAL):从EAL1到EAL7共7个级别,级别越高,安全性越强,并且与TCSEC级别有对应关系:
      评估保证级特点对应TCSEC级别
      EAL1仅进行功能测试无对应(安全性较低)
      EAL2进行结构测试C1级
      EAL3系统地测试和检查C2级
      EAL4系统地设计、测试和复查B1级
      EAL5半形式化设计和测试B2级
      EAL6半形式化验证的设计和测试B3级
      EAL7形式化验证的设计和测试A1级

3. TCSEC和CC标准有什么不同?

维度TCSECCC标准
适用范围主要针对美国政府和军方系统是国际通用标准,适用于各类信息产品
安全要求级别划分较粗,侧重于强制存取控制明确区分功能要求和保证要求,更加全面
评估方式以级别划分(如C1、B1)以评估保证级(EAL)划分,更具灵活性
现状逐渐被CC标准取代成为主流标准,广泛应用于全球

三、数据库安全性控制

1. 第一层防线:用户身份鉴别

为什么需要这一步?
就像进入银行需要先证明“你是你自己”,数据库也需要确认用户身份,防止陌生人闯入。
常见的鉴别方法

  1. 静态口令(最基础)
    • 比如设置“密码”(如“user123”),但容易被破解(像家门钥匙可能被偷配)。
  2. 动态口令(更安全)
    • 比如手机短信验证码、APP生成的动态数字(每分钟一变),像每次进门都需要新钥匙。
  3. 生物特征(高级)
    • 指纹、人脸、虹膜识别(独一无二),类似“只有本人指纹才能开门”。
  4. 智能卡(硬件辅助)
    • 比如银行卡+密码,必须同时拥有卡和密码才能访问(像“钥匙+密码锁”双重保障)。

2. 第二层防线:存取控制(决定能看什么、做什么)

(1) 自主存取控制(DAC)

核心思想:用户自己决定“谁能访问我的数据,能怎么访问”,类似“老师给学生发作业权限”。

  • 权限类型(以学生成绩表为例):
    • 查询(SELECT):允许查看成绩。
    • 修改(UPDATE):允许修改分数。
    • 删除(DELETE):允许删除记录。
  • 如何授权/回收?
    • 授权语句(GRANT)
      GRANT SELECT ON TABLE 成绩表 TO 学生A;  -- 允许学生A查询成绩
      
    • 回收语句(REVOKE)
      REVOKE UPDATE ON TABLE 成绩表 FROM 学生B;  -- 禁止学生B修改成绩
      
  • 特点:灵活但有漏洞。比如老师不小心把“修改权限”给了学生,可能导致数据被误改或泄露。

(2)数据库角色:批量管理权限的“快捷方式”

为什么需要角色?
当有多个用户需要相同权限时,逐个授权太麻烦。比如“财务部员工”都需要访问工资表,可创建一个“财务角色”,一次性授权给所有人。

  • 步骤示例
    1. 创建角色
      CREATE ROLE 财务角色;
      
    2. 给角色授权
      GRANT SELECT, UPDATE ON TABLE 工资表 TO 财务角色;  -- 角色拥有查询和修改权限
      
    3. 将角色授予用户
      GRANT 财务角色 TO 张三, 李四, 王五;  -- 三人自动获得角色权限
      
    4. 回收角色权限
      REVOKE 财务角色 FROM 张三;  -- 张三失去财务相关权限
      

优点:像“给一群人发相同钥匙”,管理效率高。

(3)强制存取控制(MAC):严防死守的密级管理

为什么需要MAC?
DAC的漏洞在于“用户可能无意泄露数据”。比如:

  • 财务人员A有权限访问“绝密级”工资表,但他复制了一份表并“不小心”分享给公开用户,DAC无法阻止(因为A有复制权限)。
    MAC如何解决?
    给数据和用户都打上“密级标签”,强制规定:
  • 读规则:用户的密级 ≥ 数据密级,才能读取(比如“机密级”用户只能读“机密级”或更低的数据)。
  • 写规则:用户的密级 ≤ 数据密级,才能写入(比如“机密级”用户只能往“机密级”或更高密级的数据里写,防止高权限用户误改低密级数据)。
    类比场景
  • 军队中,只有“上校”(高密级用户)能读取“绝密文件”(高密级数据),且不能将绝密内容写入“公开文件”(低密级数据),避免敏感信息泄露。

MAC与DAC的配合

  1. 先进行DAC检查:判断用户是否有“查询/修改”等权限(如“学生A是否有权限查成绩”)。
  2. 再进行MAC检查:判断用户密级是否符合数据密级(如“学生A的密级是否≥成绩表的密级”)。

总结:DAC是“权限开关”,MAC是“密级门禁”,双重保障更安全。

3. 其他安全手段

  1. 审计(Audit)
    • 记录用户对数据库的所有操作(如“谁查了工资表,何时查的”),像“监控摄像头”,用于事后追踪问题。
  2. 数据加密
    • 将数据变成乱码(如“123456”加密为“!@#$%^”),即使数据被窃取,没有密钥也无法破解,类似“给文件上密码锁”。
  3. 视图(View)
    • 隐藏敏感数据,只给用户看部分内容。比如给普通员工的“工资视图”只显示自己的工资,不显示他人工资,像“透过小孔看风景,只能看到部分”。

总结

层次手段作用描述
最外层用户身份鉴别拦住无关人员,确认“你是谁”
第二层自主存取控制(DAC)灵活分配权限,决定“你能做什么”
第三层强制存取控制(MAC)按密级严格管控,防止“无意泄露”
辅助层审计、加密、视图等记录操作、加密数据、隐藏敏感信息,全方位加固

四、视图机制

1. 为什么需要视图?

  • 场景:老师想让学生只能看到自己的成绩,而看不到全班成绩表。
  • 传统授权的局限GRANT SELECT ON 成绩表 TO 学生 会让学生看到整个表的数据,无法只允许查看某一行(如自己的成绩)。
  • 视图的作用:视图就像一扇“窗户”,可以从完整的数据表中“截取”部分数据(行或列),用户通过视图只能看到窗户内的内容。

2. 如何用视图实现安全控制?

示例:计科专业老师只能查看本专业学生信息

  1. 创建计科学生视图(只包含计算机科学与技术专业的学生):
    CREATE VIEW 计科学生视图 AS 
    SELECT * FROM 学生表 WHERE 专业='计算机科学与技术';
    
    这个视图相当于从“学生表”中切出一个“计科学生”的小窗口。
  2. 授权
    • 给小明老师授权只能查询视图:
      GRANT SELECT ON 计科学生视图 TO 小明;
      
      小明通过视图只能看到计科学生的数据,看不到其他专业学生。
    • 给系主任张三授权所有权限:
      GRANT ALL PRIVILEGES ON 计科学生视图 TO 张三;
      
      张三可以通过视图增删改查计科学生数据,但同样看不到其他专业数据。

3. 核心优势

  • 隐藏敏感数据:通过视图屏蔽无关行/列,比如工资表中只让员工看到自己的工资列。
  • 与授权结合:视图相当于“数据过滤器”,授权决定“谁能看”,视图决定“能看什么”。

五、审计

1. 什么是审计?

  • 类比:超市安装监控摄像头,记录所有顾客的行为,以便事后追查盗窃或纠纷。
  • 数据库中的审计:开启审计后,数据库会自动记录用户的所有操作(如查询、修改、删除),包括:
    • 谁操作的(用户账号)
    • 何时操作的(时间戳)
    • 操作了什么数据(如表名、列名)
    • 数据前后的变化(如修改前工资是5000,修改后是6000)

2. 审计有什么用?

  • 追踪非法操作:如果工资表被篡改,通过审计日志可以查到是谁在几点修改了数据。
  • 合规要求:金融、医疗等行业必须记录操作日志,满足监管要求。
  • 性能分析:通过分析日志,发现高频操作或慢查询,优化数据库。

3. 审计的类型和适用场景

  • 用户级审计:用户自己设置,监控自己创建的表。比如小王对自己的“报销表”开启审计,查看谁修改过。
  • 系统级审计:只有管理员(DBA)能设置,监控整个数据库。比如银行DBA开启对“转账表”的审计,防止内部人员篡改交易记录。
  • 注意:审计会增加存储和性能开销,默认不开启,仅在高安全需求场景(如银行、政府)使用。

4. 数据库对审计的支持

  • SQL Server:2008版本后自带审计功能,可记录登录、语句执行等。
  • MySQL:企业版收费提供审计,社区版需用第三方插件(如MariaDB Audit Plugin)。
  • 示例:对“成绩表”的修改操作开启审计:
    -- 打开审计开关
    SET AUDIT_TRAIL TO ON;
    -- 对成绩表的更新和删除操作进行审计
    AUDIT UPDATE, DELETE ON 成绩表;
    

六、数据加密

1. 为什么需要数据加密?

  • 场景:数据在硬盘存储时被偷,或在网络传输时被截获。如果数据是明文(如“张三工资8000”),攻击者可直接读取;如果是密文(如“@#$%&*”),则无法理解。
  • 核心思想:将明文(原始数据)通过算法变成密文(乱码),只有拥有密钥的人才能解密回明文。

2. 加密的时机和方法

  • 按阶段划分
    • 传输加密:数据在网络中传输时加密(如从客户端到数据库服务器),防止中途被截获。类似快递包裹用密码锁封装。
    • 存储加密:数据存到硬盘时加密,防止硬盘被盗后数据泄露。类似行李箱用密码锁锁住。
  • 按算法划分
    • 对称加密(如DES):加密和解密用同一把钥匙(密钥),速度快但密钥需保密。类似“一把钥匙开一把锁”。
    • 非对称加密(如RSA):用公钥加密,私钥解密,密钥成对出现。公钥可公开,私钥需保密。类似“用锁头锁门,用钥匙开门”。

3. 简单加密示例:凯撒密码(替换法)

  • 明文I love you
  • 加密规则:每个字母后移3位(如A→D,B→E)。
  • 密文L oryh brx
  • 解密:每个字母前移3位,还原为明文。

4. 数据库中的加密实现

  • 库内加密:在数据库内部自动完成加密和解密,用户感觉不到(透明加密)。比如数据写入硬盘前自动加密,读取时自动解密。
  • 库外加密:在客户端或应用层先加密数据,再存入数据库。数据库存储的是密文,但需要应用自己管理密钥。
  • 优缺点对比
    方式优点缺点
    库内加密对应用透明,操作简单依赖数据库厂商,可能影响性能
    库外加密灵活性高,适合定制化需求需自行管理密钥,增加开发成本

5. 总结三层安全手段

手段核心功能类比场景
视图机制限制数据可见范围,屏蔽敏感行/列用窗户限定能看到的风景
审计记录所有操作,用于事后追踪和安全分析超市监控摄像头记录顾客行为
数据加密防止数据在存储和传输中被窃取或泄露给文件加密码锁,防止被偷看

七、其它安全性保护(了解就好)

1. 推理控制

1.1 什么是推理控制?

  • 场景引入:假设数据库中有两张表:
    • 公开表:记录职工号、姓名、职务(如“张三,程序员”)。
    • 机密表:记录职工号、工资(如“张三,月薪20000”)。
    • 普通用户只能访问公开表,但通过“职务→工资”的常识(如“程序员的平均工资约15000-25000”),可能推断出张三的工资属于该范围,甚至结合其他同事数据精准推算出具体数值。
  • 定义:推理控制是防止用户利用公开数据背景知识,间接推断出敏感数据的安全机制,解决MAC(强制存取控制)未覆盖的“逻辑漏洞”。

1.2 为什么需要推理控制?

  • MAC的局限:MAC通过密级限制直接访问(如工资表设为“机密”,普通用户无法直接查询),但无法阻止用户通过公开数据“间接推理”机密信息。

  • 示例

    职工号姓名职务(公开)
    001张三高级工程师
    002李四实习生
    职工号工资(机密)
    00130000
    0025000
    • 用户已知“高级工程师工资远高于实习生”,即使看不到工资列,也能推断001的工资高于002,可能进一步通过行业数据估算具体数值。

1.3 常用的推理控制方法

  • 方法1:基于函数依赖的推理控制
    • 禁止公开数据中存在与敏感数据的“固定关联”。
    • :如果“职务→工资范围”是强关联(如“实习生工资固定为5000”),则隐藏“职务”或“工资”中的一方,避免用户通过函数关系(职务→工资)推断。
  • 方法2:基于敏感关联的推理控制
    • 打乱公开数据与敏感数据的关联,增加推理难度。
    • :在公开表中不显示“职务”,改为“岗位编号”(如“岗位A、岗位B”),且岗位编号与工资无明确对应关系,用户无法通过岗位推断工资。

2. 经济学角度的安全考量:没有绝对安全,只有性价比最优

2.1 为什么没有“绝对安全”的系统?

  • 技术层面:任何加密算法或安全措施都可能被破解(如量子计算可能破解RSA加密),只是时间和成本问题。
  • 现实层面:投入无限资源追求绝对安全不现实。例如:
    • 保护“明天的天气预测”数据,投入百万级加密措施显然不合理,因为数据过了今天就失去价值。

2.2 什么是“经济上安全”的系统?

  • 标准1:破译成本>信息价值
    • 若黑客破译数据的成本(如购买设备、雇佣专家的费用)超过数据本身的价值,则系统是安全的。
    • :保护“某公司明天的股票交易策略”,若策略带来的收益预期为10万元,而破译需要花费20万元,黑客会因“不划算”放弃攻击。
  • 标准2:破译时间>信息生命周期
    • 若数据在被破译前已失去时效性,则系统是安全的。
    • :保护“双十一促销活动细节”,活动结束后数据价值骤降,即使一周后被破译,也不会造成损失。

2.3 如何应用经济学思维设计安全方案?

  • 步骤1:评估数据价值和生命周期
    • 敏感数据(如用户隐私):价值高、生命周期长,需投入较高安全成本(如AES-256加密、定期密钥更换)。
    • 临时数据(如临时验证码):价值低、生命周期短,使用简单加密(如Base64编码)即可。
  • 步骤2:平衡成本与收益
    • 小企业无需采购千万级的加密硬件,选择云服务商提供的标准化加密服务(如阿里云SSL证书)更经济。
    • 金融机构则需投入高成本实现“量子加密+多重审计”,因为数据泄露的损失可能远超防护成本。

以上就是这篇博客的全部内容,下一篇我们将继续探索更多精彩内容。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的数据库系统概论专栏
https://blog.csdn.net/2402_83322742/category_12911520.html?spm=1001.2014.3001.5482

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/pingmian/83269.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jvm 元空间大小分配原则

JVM元空间(Metaspace)的大小分配原则与系统物理内存密切相关,但并不是直接等比例分配,而是通过一系列参数和JVM的动态管理机制来确定。下面从原理和实际行为两方面详细说明: 1. 元空间(Metaspace&#xff0…

编程之巅:语言的较量

第一章:代码之城的召集令 在遥远的数字大陆上,有一座名为“代码之城”的神秘都市。这里居住着各种编程语言的化身,他们以拟人化的形态生活,每种语言都有独特的性格与技能。Python是个优雅的学者,C是个硬核战士&#x…

飞牛fnNAS装机之迷你小主机的利旧

前几天找Console线的时候,翻出一台迷你小主机,想起来以前是做“软路由”用的,现在用不上了。本想放回箱子,但突然想起最近正在做飞牛NAS的专题,不如将其改造成NAS得了。 这个东东有HDMI、VGA接口,2个USB(其中一个支持3.0),还有4个网口。 打开机盖,看看内部情况。发现…

uv:一个现代化的 Python 依赖管理工具

在 Python 的生态系统中,依赖管理和 Python 版本管理一直是开发者关注的核心问题。传统的工具如 pip、poetry 和 pyenv 虽然功能强大,但在性能和使用体验上仍有改进空间。uv 是由 Python 核心开发者开发的 现代化依赖管理工具,旨在提供更快、…

ubuntu 22.04安装k8s高可用集群

文章目录 1.环境准备(所有节点)1.1 关闭无用服务1.2 环境和网络1.3 apt源1.4 系统优化1.5 安装nfs客户端 2. 装containerd(所有节点)3. master的高可用方案(master上操作)3.1 安装以及配置haproxy&#xff…

PnP(Perspective-n-Point)算法 | 用于求解已知n个3D点及其对应2D投影点的相机位姿

什么是PnP算法? PnP 全称是 Perspective-n-Point,中文叫“n点透视问题”。它的目标是: 已知一些空间中已知3D点的位置(世界坐标)和它们对应的2D图像像素坐标,求解摄像机的姿态(位置和平移&…

QT-JSON

#include <QJsonDocument>#include <QJsonObject>#include <QJsonArray>#include <QFile>#include <QDebug>void createJsonFile() {// 创建一个JSON对象 键值对QJsonObject jsonObj;jsonObj["name"] "John Doe";jsonObj[…

解决各个系统报错TDengine:no taos in java.library.path问题

windows 系统解决办法 在本地上安装一个TD的Windows客户端&#xff0c;注意安装的客户端版本一定要和服务端TD版本完全一致。&#xff08;或者将 C:\TDengine\driver\taos.dll 拷贝到 C:\Windows\System32\ 目录下&#xff09; 客户端各个历史版本下载链接&#xff1a;TDengin…

我提出结构学习的思路,意图用结构学习代替机器学习

我提出结构学习的思路&#xff0c;意图用结构学习代替机器学习 1.机器学习的本质和缺点 机器学习的规律是设计算法、用数据训练算法、让算法学会产生正确的数据回答问题&#xff0c;其缺点在于&#xff0c;需要大规模训练数据和巨大算力还其次&#xff0c;机器学习不能产生智…

【Hive 运维实战】一键管理 Hive 服务:Metastore 与 HiveServer2 控制脚本开发与实践

一、引言 在大数据开发中&#xff0c;Hive 作为重要的数据仓库工具&#xff0c;其核心服务metastore&#xff08;元数据服务&#xff09;和hiveserver2&#xff08;查询服务&#xff09;的启停管理是日常运维的基础操作。手动执行命令启停服务不仅效率低下&#xff0c;还容易因…

简历制作要精而不简

不得不说&#xff0c;不管是春招&#xff0c;还是秋招&#xff0c;我们在求职时&#xff0c;第一步便是制作一份简历。不得不承认&#xff0c;好的简历&#xff0c;就像一块敲门砖&#xff0c;能让面试官眼前一亮&#xff0c;让应聘成功的概率增添一分。 对于一个初次求职者来…

深入Java8-日期时间API:TemporalQuery、TemporalQueries类

JDK版本&#xff1a;11 TemporalQuery FunctionalInterface public interface TemporalQuery<R> {R queryFrom(TemporalAccessor temporal); } emporalQuery是Java 8中用于时间查询的一个函数式接口&#xff0c;它允许用户对日期和时间进行查询。TemporalQuery接口中定…

Spring Boot + MyBatis 实现的简单用户管理项目的完整目录结构示例

&#x1f4c1; 示例项目结构&#xff08;基于 Maven&#xff09; user-management/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/example/usermanagement/ │ │ │ ├── controller/ │ │ │ │ └── UserC…

嵌入式RTC工作原理及应用场景

20ppm 是衡量 RTC&#xff08;实时时钟&#xff09;精度的关键指标&#xff0c;表示 每百万秒&#xff08;约11.57天&#xff09;的最大时间误差范围。以下是通俗易懂的解释&#xff1a; 1. ppm 的含义 ppm Parts Per Million&#xff08;百万分之一&#xff09; 1 ppm 1/1,…

[Godot][游戏开发] 如何在 Godot 中配置 Android 环境(适配新版 Android Studio)

在使用 Godot 进行 Android 项目的开发与导出时&#xff0c;配置 Android 环境是一项必要步骤。随着 Android Studio 的更新&#xff08;特别是自 Arctic Fox 版本起&#xff09;&#xff0c;安装方式发生了变化&#xff0c;默认不再引导用户手动配置 SDK/JDK/NDK&#xff0c;而…

量子语言模型——where to go

1️⃣ 在大语言模型&#xff08;LLM&#xff09;高度发达的今天&#xff0c;还研究这些小模型&#xff08;如n-gram、RNN、量子语言模型&#xff09;是否有意义&#xff1f; ✅ 有意义&#xff0c;但意义已经转变了——不再是用于「直接生产 SOTA 应用」&#xff0c;而是&…

机电的焊接技术

焊接技术:高温或高压条件下,使用焊接材料(焊条或焊丝)将两块或两块以上的母材(待焊接的工件)连接 成一个整体的操作方法&#xff61; 2.3.1 焊接设备和焊接材料的分类及选用 1.焊接设备&#xff08;对应焊接方法&#xff09; 2.焊接材料&#xff08;焊条、焊丝、焊剂、焊接气…

深入解析Vue.js:构建现代Web应用的高效之道

一、Vue.js 的核心设计理念 Vue.js 以渐进式框架为定位,强调轻量灵活与易上手性,允许开发者根据项目需求逐步引入核心功能或扩展模块。其核心设计遵循以下原则: 响应式数据绑定:通过数据劫持(Object.defineProperty/Proxy)和发布 - 订阅模式,实现视图与数据的自动同步,…

信贷特征分析可视化函数(外置指标面板完整版)

XY的基础处理 target_column[SeriousDlqin2yrs] feature_columns[RevolvingUtilizationOfUnsecuredLines, age,NumberOfTime30-59DaysPastDueNotWorse, DebtRatio, MonthlyIncome,NumberOfOpenCreditLinesAndLoans, NumberOfTimes90DaysLate,NumberRealEstateLoansOrLines, Nu…

ESP32-idf学习(三)esp32C3连接iot

一、前言 上一篇用蓝牙作为通信方式&#xff0c;虽然勉强完成了控制&#xff0c;但结果显然不是那么符合我们的预期&#xff0c;既然用蓝牙还需要研究一段时间&#xff0c;那我们就先整一些现成的&#xff0c;不需要研究的&#xff01;iot云平台&#xff01;这里当然也是通过w…