04-安全启动介绍

本文框架
1. 基本概念
1.1 基本概念回顾
1.2 数字签名及验签流程
2. 安全启动实施
2.1 信任根选择
2.1.1 使用HSM作为信任根
2.1.2 使用最底层Bootloader作为信任根
2.2 校验方法确认
2.2.1 基于非对称加密算法(数字签名)
2.2.2 基于对称加密算法
2.3 安全启动方案
2.3.1 HSM+对称加密/非对称加密
2.3.2 最底层Bootloader+对称加密/非对称加密

安全启动(Secure Boot)是软件启动前,通过层层校验对软件完整性(Integrity)及可信度(Authentication)两项指标验证的过程,属于信息安全部分非常重要的一部分内容,本文对基本概念及常见的方案进行介绍,大纲如下:


1. 基本概念
1.1 基本概念回顾
在系列文章《信息安全系列02-基本概念介绍》中已对信息安全中的常见名词进行介绍,在安全启动中会涉及到的名词如下:

哈希函数:哈希函数加密是将数据通过哈希算法将任意长度的数据作为输入转换成固定长度的字符串;
对称及非对称加密算法;
数字签名:一种基于哈希函数及非对称加密算法,利用公钥加密技术为数据提供一个独特的签名来验证数据完整可信的技术;
信任根:是安全启动过程的基础,它是系统中最先被信任的元素,可以是一个硬件设备或者一段固化在只读存储器中的程序。这个元素必须具有高度的安全性,以确保整个系统的启动过程可以信赖。
信任链:基于信任根,系统会通过一系列的校验和认证步骤来构建信任链。信任链是指一系列经过验证的软件组件,它们相互认证,形成一个从信任根开始的受信任的软件链条。这个过程确保了系统启动时所加载的每一个软件组件都是可信的。

1.2 数字签名及验签流程

数字签名的生成过程:
1)生成消息摘要:使用哈希函数对原始信息进行运算,生成固定长度的消息摘要(或称为信息摘要)。
2)生成签名:发送者使用自己的私钥通过非对称加密算法对消息摘要进行加密,形成数字签名。

数字签名解密过程
1)接收者使用发送者的公钥对收到的数字签名解密,获得消息摘要(哈希值);
2)接收者也对收到的原始信息采用同样的哈希函数生成一个新的消息摘要(哈希值);
3)如果两个摘要相同,就说明信息在传输过程中没有被篡改,且确实来自于声称的发送者。

2. 安全启动实施
安全启动(secure boot)主要检查启动后程序的完整性(Integrity)及可信度(Authentication)两项指标。通过启动时对软件进行验证来保证启动时的软件是合法且未经篡改的。

2.1 信任根选择
目前很多车规级MCU都继承了硬件安全模块,如ST的SPC58,英飞凌Tc3xx,瑞萨的RH850等,提供了集成的HSM模块,这些模块利用独立的核来保证可信,属于硬件上的信任根。另外也可以使用软件的最底层BootLoader作为信任根,这是一种成本较低的软件解决方案。

2.1.1 使用HSM作为信任根
在安全启动过程中,HSM Bootloader作为整个系统的信任根(RoT)。HSM Bootloader在启动时首先校验HSM Application的状态,确保其完整性后,HSM Application再校验其他软件模块,如BM(Bootloader Manager)的完整性。这种层级的校验确保了系统的可信启动。

2.1.2 使用最底层Bootloader作为信任根
基于软件的信任根方案虽然不如硬件信任根那样在物理层面上安全,但通过合理的设计和严格的流程控制,也能够提供一定程度的安全保障。然而,这需要得到OEM的认可,并且在整个系统的设计和维护过程中要非常小心,以防止潜在的安全风险。

2.2 校验方法确认
安全启动有两种不同类型的加密方法:基于对称密钥和非对称密钥加密的解决方案。

2.2.1 基于非对称加密算法(数字签名)
非对称加密的签名及验签流程如下:


2.2.2 基于对称加密算法
对称加密算法流程如下:


2.3 安全启动方案
可以有HSM/无HSM参与来进行划分,同时可以根据使用的加密算法是对称加密/非对称加密进一步划分:

2.3.1 HSM+对称加密/非对称加密
相对于对称密钥方案,对称加密方案校验时只需要重新计算一次MAC值并与原来存储的MAC对比即可。但需要特别注意MAC值存储在一个安全区域(HSM)
非对称加密方案只需要保证公钥存储在OTP区域不被修改即可。

2.3.2 最底层Bootloader+对称加密/非对称加密
使用最底层Bootloader作为信任根,对于无HSM参与时,由于MCU算例有限,加密时间可能会比较长,此时可以通过并行校验的方式即程序可以不等待校验完成就跳转,但当校验出程序被篡改后程序则停止执行,并对相关信息进行记录。
Bootloader+对称加密(适用于高性能MCU)及Bootloader+非对称加密除信任根选择与2.3.1章节不同外,其余基本一致,在此不再赘述。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/initiallizer/article/details/136356617

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
本系统是一款基于STC89C52的GSM智能家居报警系统,能够实现烟雾报警、温度报警、防盗报警,并采用GSM发送警报信息。 1.GSM手机模块TC35 1.1 TC35特点 TC35是Siemeils公司推出的新-代无线通信GSM模块。自带RS232通讯接口,可以方便地与PC机、单片机连机通讯。可以快速、安全、可靠地实现系统方案中的数据、语音传输、短消息服务(Short Message Service)和传真。TC35模块的工作电压为3.3—5.5V,可以工作在900MHz和1800MHz两个频段,所在频段功耗分别为2w(900M)和1w(1800M)。 模块有AT命令集接口,支持文本和PDU模式的短消息、第三组的二类传真、以及2.4k,4.8k,9.6k的非透明模式。此外,该模块还具有电话簿功能、多方通话,漫游检测功能,常用工作模式有省电模式、IDLE、TALK等模式。通过独特的40引脚的ZIF连接器,实现电源连接、指令、数据、语音信号、及控制信号的双向传输。通过ZIF连接器及50Ω天线连接器,可分别连接SIM卡支架和天线。 TC35模块主要由GSM基带处理器、GSM射频模块、供电模块(ASIC)、闪存、ZIF连接器、天线接口六部分组成。作为TC35的核心,基带处理器主要处理GSM终端内的语音、数据信号,并涵盖了蜂窝射频设备中的所有的模拟和数字功能。在不需要额外硬件电路的前提下,可支持FR、HR和EFR语音信道编码。 1.2使用方法 1)TC35的连机方法 任何一个TC35模块首次使用时,必须要测试其工作是否正常,由于其自带RS232接口,所以我们可以用PC机的串口调试软件进行调试。 a)启动串口调试软件 串口调试软件有许多,可以使用任意一款软件,也可以使用WINDOWS自带的“超级终端"。设置波特率19.2k,这是TC35的默认波特率,首次连机可以从2400~57.6k不断测试,直到TC35有应答。 b)发送“AT” AT 回车 c)改变波特率“AT+IPS=XXXX" TC35的默认波特率是19.2k,实际使用时,可以改成9600或38.4K,方法如下: AT+IPR=9600 回车 d)短信模式的设置 (GSM模块的短信模式有2种。第1种是:TEXT模式;第2种是:PDU模式。PDU模式可以采用unicode编码发送英文、汉字。但合成PDU码比较复杂,而TEXT模式只能发送英文,但无须编码。实际使用可以采用TEXT模式。 设置如下: AT+CMFG=1 回车 e)短信模式简介 SMS是由Etsi所制定的一个规范(GSM 03.40和GSM 03.38)。当使用7-bits编码的时候它可以发送最多160个字符;8-bit编码(最多140个字符)。通常无法直接通过手机显示;通常被用来作为数据消息,例如:smart messaging中的图片和铃声和OTA WAP设置。16-bit信息(最多70个字符)被用来显示Unicode(UCS2)文本信息,可以被大多数的手机所显示。一个以class 0开头的16-bit的文本信息将在某些手机上作为Flash SMS显示(闪烁的SMS和警告SMS)。 有两种方式来发送和接收SMS信息:使用文本模式或者使用PDU(protocol description unit)模式。文本模式(可能某些手机不支持)实际上也是一种PDU编码的一种表现形式。在显示SMS信息,可能使用不同的字符集和不同的编码方式。 f)短信读取方法 AT+CMGR=X回车 如果有短信息,TC35回应: AT+CMGR=1 +CMGR:"REC UNREAD","13307496548",,"04/08/17,22:24:32+02 testOK OK 短信息分析: “test OK"就是短信息内容。 短信息的存储容量与Ic卡有关,序号从1-N。 REC UNREAD":代表短信息未读过。 REC READ" :已读过。 13307496548" :接收的手机号码。 04/08/17,22:24:32+02":短信息发送的时间。 无短信息,TC35回应: AT+CMGR=3 +CMGR:0,,0 g)短信的删除方法 AT+CMGD=1回车 h)短信的发送方法 短信息的发送分成两步: i.发送接收的手机号码,等待应答:“>" AT+CMGS="13307496548"回车(目的地址) TC35回应: AT+CMGS="13307496548" > ii.输入短信息的内容(只能是英文):Test 回车 2)单片机控制TC35的方法 上面介绍了用PC机控制TC35的方法,我们只需设计一个TTL转RS232电平电路,连接到MCU的UART口,另一端直接连接到TC35,并将PC机输出的控制命令转化成单片机输出的指令即可。 2.烟雾报警
Access 2000数据库系统设计(PDF)---025目 录译者序前言第一部分 Access基础第1章 Access 2000的新增功能 11.1 Access 2000透视 11.2 用Office Web组件部署数据访问页 21.2.1 Office Web 组件 21.2.2 DAP演示测试. 31.2.3 DAP设计模式 51.3 为Microsoft数据引擎创建 Access数据项目 51.3.1 新的ADP工具和对象 61.3.2 NorthwindCS项目和da Vinci工具箱的深入研究 61.4 OfficeVBA编辑器和Access的集成 91.5 DAP和DHTML的HTML源编辑器 101.6 浏览和编辑子数据表中的相关记录 111.7 使Jet和SQL Server 7.0/MSDE数据库相一致 111.8 Access在2000年问题上的改进 121.8.1 四位数年份选项设置 121.8.2 数据库窗口 131.8.3 窗体和报表 141.8.4 名称自动更正 151.8.5 与Office 2000相关的改进 151.9 安装Access 2000 171.9.1 Access 2000的初始安装 171.9.2 定制Access 2000 201.10 安装和配置Microsoft数据引擎 20 1.11 现实世界—为什么升级 23第2章 建立第一个Access 2000应用 252.1 理解Access的应用设计方法 252.2 从模板文件创建Access应用 262.3 熟悉联系管理应用 292.3.1 数据库窗口中的表对象 292.3.2 切换面板窗体 322.3.3 Access窗体 332.3.4 Access报表 352.3.5 Access模块 362.4 使用切换面板管理器 382.5 探索窗体设计视图和VBA类模块 392.6 现实世界—所学知识的透视 40第3章 Access导航 423.1 理解Access功能和模式 423.1.1 定义Access功能 423.1.2 定义Access操作模式 443.2 理解Access的表显示 443.2.1 最大化文档窗口 463.2.2 把文档窗口最小化为图标 473.2.3 表数据表视图中的工具栏 483.2.4 工具栏自定义 503.2.5 右击快捷方式菜单 523.3 使用功能键 533.3.1 全局功能键 533.3.2 字段、网格和文本框的功能键分配 533.4 设置默认的选项 543.4.1 系统默认值 553.4.2 数据表视图的默认值 583.5 使用Access帮助 593.5.1 上下文相关的帮助 593.5.2 “帮助”菜单 603.5.3 Microsoft Access的帮助窗口 613.5.4 “Office助手” 643.6 使用“数据库实用工具” 663.6.1 压缩和修复数据库 673.6.2 将数据库转换为Access 2000格式 683.6.3 将数据库转换为Access 97格式 693.6.4 添加切换面板窗体 693.6.5 创建.mde文件 703.7 疑难解答 703.8 现实世界—HTML帮助或者障碍 71第4章 使用Access数据库和表 724.1 定义Access数据库的元素 724.2 理解关系型数据库 744.3 使用Access数据库文件和表 754.3.1 Access系统数据库 754.3.2 Access 库数据库 754.4 创建一个新数据库 754.5 理解表和字段的属性 774.6 选择字段数据类型、大小和格式 804.6.1 为数值和文本数据选择字段大小 814.6.2 选择显示格式 834.6.3 使用输入掩码 874.7 使用Northwind Traders示例数据库 884.8 向现有的数据库添加一个新表 904.8.1 设计Personnel Actions表 914.8.2 创建Personnel Actions表 934.8.3 在数据表视图中直接创建一个表 964.9 设置字段的默认值 964.10 使用关系、关键字字段和索引 974.10.1 建立表之间的关系 984.10.2 实施参照完整性 1004.10.3 选择一个主键 1014.10.4 往表中添加索引 1024.11 改变字段和关系 1044.11.1 重新安排表中字段的顺序 1044.11.2 改变字段数据类型和大小 1054.11.3 改变表之间的关系 1064.12 复制和粘贴表 1074.13 疑难解答 1084.14 现实世界—数据库战略和表战术 108第5章 输入、编辑和验证表中的数据 1105.1 在Access表中输入测试数据 1105.2 使用键盘操作进行数据输入和编辑数据 1105.2.1 创建Northwind.mdb的试验用复本 1115.2.2 使用数据输入和编辑键 1115.2.3 用于Windows剪贴板操作的组合键 1125.2.4 在字段和文本框上使用快捷键 1135.2.5 设置数据输入选项 1145.3 向表中添加记录 1145.4 选择、追加、替换和删除表记录 1155.5 验证数据输入 1165.5.1 添加字段级有效性规则 1165.5.2 添加表级有效性规则和使用表达式生成器 1185.6 向Personnel Actions表添加记录 1195.7 输入Personnel Actions表数据和测试有效性规则 1205.8 疑难解答 1215.9 现实世界—批量数据输入 121第6章 排序、查找和筛选表中的数据 1236.1 理解排序和筛选的作用 1236.2 排序表的数据 1236.2.1 冻结表中某个字段的显示 1246.2.2 在单个字段上排序数据 1246.2.3 在多个字段上排序数据 1256.2.4 删除表排序次序和解冻列 1256.3 查找表中的匹配记录 1266.4 自动地替换匹配的字段值 1276.5 筛选表数据 1286.5.1 按选定内容筛选 1286.5.2 按窗体筛选 1306.5.3 高级筛选和排序 1326.5.4 添加一个多字段排序和复合筛选准则 1326.5.5 使用复合准则 1346.5.6 将筛选保存为查询与筛选的加载 1356.6 定制数据表视图 1366.7 复制、导出和邮寄排序和筛选后的数据 1386.8 疑难解答 1396.9 现实世界—基于计算机的排序和搜索 139第7章 链接、导入和导出表 1417.1 从其他应用或者向其他应用移动数据 1417.2 理解Access如何处理其他数据库文件格式的表 1427.2.1 识别PC数据库文件格式 1437.2.2 链接和导入外部 ISAM表 1437.2.3 用ODBC链接Visual FoxPro表 1457.2.4 处理外部文件中的图像 1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517.3.2 链接Excel工作表 1567.4 使用Microsoft Outlook和Exchange文件夹 1567.4.1 用Outlook导出和导入Jet 4.0表 1577.4.2 使用Exchange/Outlook向导的链接 1597.5 导入文本文件 1607.5.1 使用导入文本向导 1617.5.2 导入文本向导的高级选项 1637.5.3 使用分隔文本文件 1657.5.4 处理宽度固定的文本文件 1667.5.5 追加文本数据到一个现有的表 1677.6 使用剪贴板导入数据 1677.6.1 向一个表粘贴新记录 1687.6.2 通过从剪贴板上粘贴来替换记录 1707.7 从Access表导出数据 1717.7.1 通过Windows剪贴板导出数据 1717.7.2 将数据导出为一个文本文件 1727.7.3 以其他文件格式导出数据 1737.8 疑难解答 1737.9 现实世界—Microsoft的付出与回报 175第二部分 最大限度地利用查询第8章 设计Access 查询 1778.1 查询简介 1778.2 “简单查询向导”的使用 1778.3 使用查询设计窗口 1798.3.1 为查询选择字段 1808.3.2 按准则选择记录和排序显示 1828.3.3 创建更为复杂的查询 1838.3.4 改变查询列标题的名字 1848.3.5 将查询作为报表进行打印 1868.3.6 使用查询的数据 1878.4 创建其他的查询类型 1888.4.1 创建和使用简单的生成表操作查询 1888.4.2 向生成表查询添加参数 1908.5 疑难解答 1918.6 现实世界—查询设计优化 191第9章 理解查询操作符和表达式 1939.1 编写表达式作为查询准则和数据验证依据 1939.2 理解表达式中的元素 1949.2.1 操作符 1949.2.2 文字 1979.2.3 标识符 1989.2.4 函数 1989.2.5 固有的和命名常数 2059.3 创建Access表达式 2059.3.1 创建默认值的表达式 2069.3.2 使用表达式进行数据有效性验证 2069.3.3 作为查询准则的表达式 2069.3.4 计算查询字段值的表达式 2109.3.5 表达式的其他用途 2129.4 疑难解答 2129.5 现实世界—Access表达式代数学 212第10章 创建多表查询和交叉表查询 21410.1 介绍表的连接 21410.2 连接表以创建多表查询 21510.2.1 创建传统的单列等值连接 21610.2.2 为查询结果集指定排序次序 21810.2.3 使用表之间的间接关系创建查询 21910.2.4 创建多列等值连接和选择唯一值 22010.3 使用表中的查找字段 22210.3.1 用查阅向导添加外部键下拉列表 22210.3.2 向一个表添加固定值查找列表 22510.4 向表或者查询添加子数据表 22610.4.1 表子数据表 22710.4.2 查询子数据表 22810.5 外连接、自连接和Theta连接 23010.5.1 创建外连接 23010.5.2 创建自连接 23110.5.3 创建带准则的不相等Theta连接 23210.6 用查询更新表中的数据 23310.6.1 确定你是否能更新查询的特性 23310.6.2 用查询字段属性窗口格式化数据 23410.7 使表的所有字段都可以被访问 23510.8 在多个记录上创建计算 23510.8.1 使用SQL的聚集函数 23510.8.2 基于表中所有记录进行计算 23610.8.3 基于表中被选定的记录进行计算 23810.9 设计参数查询 24010.9.1 向月销售量查询添加一个参数 24010.9.2 指定参数的数据类型 24110.10 创建交叉表查询 24210.10.1 使用向导生成一个季度产品销售交叉表查询 24210.10.2 设计一个月产品销售交叉表查询 24510.10.3 使用固定列标题的交叉表查询 24610.11 从其他数据库中的表创建查询 24710.12 疑难解答 24810.13 现实世界—优化多表查询 249第11章 用操作查询修改数据 25111.1 操作查询入门 25111.2 用生成表查询创建新表 25111.2.1 设计和测试选择查询 25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 25611.4 用操作查询从一个表中删除记录 25711.5 更新表中多个记录的值 25811.6 测试级联删除和更新 26111.6.1 创建测试表和建立关系 26111.6.2 测试级联删除 26211.6.3 测试级联更新 26211.7 疑难解答 26311.8 现实世界—操作查询之外的选择 26311.8.1 浏览模式更新 26411.8.2 基于窗体的更新 26411.8.3 用SQL语句进行更新 26411.8.4 用SQL Server存储过程进行更新 265第三部分 设计窗体和报表第12章 创建和使用窗体 26712.1 理解Access窗体和控件的角色 26712.2 使用窗体向导创建事务处理窗体 26812.2.1 为窗体选择数据源 26812.2.2 用窗体向导创建基本窗体 26812.3 使用窗体设计窗口 27212.3.1 窗体设计窗口的元素 27312.3.2 窗体设计工具栏按钮和菜单选择 27312.3.3 格式工具栏 27512.3.4 窗体的默认值 27512.3.5 使用自动套用格式 27612.3.6 改变对象的颜色 27712.4 选择、编辑、移动窗体元素和控件 28112.4.1 改变窗体页眉和窗体页脚的大小 28212.4.2 选择、移动和缩放单个控件 28212.4.3 将控件和网格对齐 28312.4.4 选择和移动多个控件 28312.4.5 对齐一组控件 28412.4.6 使用Windows 剪贴板和删除控件 28412.4.7 改变控件的颜色和边框样式 28512.4.8 改变控件的内容 28512.4.9 使用格式刷 28612.5 重新安排Personnel Actions窗体 28612.5.1 设置主窗体的属性 28712.5.2 设置子窗体的属性 28812.6 使用事务处理窗体 28912.6.1 窗体视图中的工具栏按钮 28912.6.2 使用Personnel Actions窗体 29012.6.3 向Personnel Actions表追加新记录 29012.6.4 编辑现有的数据 29212.6.5 提交和回退对表的改变 29212.7 在测试之后修改窗体或者控件的属性 29212.7.1 为数据输入而改变字段的次序 29212.7.2 从Tab键次序中删除字段 29312.8 现实世界—窗体设计技巧 293第13章 设计自定义多表窗体 29613.1 扩展你的窗体设计技能 29613.2 了解Access工具箱 29613.2.1 控件分类 29613.2.2 工具箱 29713.2.3 Access的控件向导、生成器和工具栏 29813.3 使用工具箱添加控件 30013.3.1 创建作为主窗体基础的查询 30113.3.2 创建一个具有页眉和页脚的空白窗体 30213.3.3 向窗体页眉上添加一个标签 30313.3.4 格式化文本和调整文本控件的大小 30413.3.5 创建绑定、多行、计算文本框 30513.3.6 改变属性的默认视图和获取帮助 30813.3.7 用向导添加选项组 30813.3.8 使用剪贴板复制控件到其他窗体 31113.3.9 使用组合和列表框 31213.3.10 创建一个组合框来查找特定的记录 31813.3.11 创建选项卡控件 32013.3.12 改变控件类型 32413.4 完成主Personnel Actions Entry窗体 32413.5 使用子窗体/子报表向导创建子窗体 32613.6 修改连续窗体的设计 32813.7 覆盖表的字段属性 32913.8 为打印窗体添加页眉和页脚 33013.9 疑难解答 33013.10 现实世界—Access的向导化 331第14章 打印基本报表和邮件标签 33314.1 理解窗体和报表之间的关系 33314.2 Access 报表类型的分类 33414.3 用“报表向导”创建分组报表 33414.4 使用Access的报表窗口 33814.5 使用自动套用格式和自定义报表样式 34014.6 修改基本的“报表向导”报表 34014.6.1 删除、重新部署和编辑现有的控件 34014.6.2 向报表添加计算控件 34514.6.3 对齐和格式化控件并调整行间距 34714.7 传统报表的边距调整和打印 35014.8 通过组的保持同页属性防止出现孤立的记录 35114.9 将多列报表作为邮件标签打印 35214.10 疑难解答 35314.11 现实世界—虚拟的无纸办公室 354第15章 高级报表 35515.1 从头开始创建报表 35515.2 报表数据的分组与排序 35515.2.1 分组数据 35615.2.2 数据分组排序 35815.3 从空白报表开始 35915.3.1 将一个报表用作一个子报表 35915.3.2 创建Monthly Sales by Category报表 36115.4 集成子报表 36415.4.1 向绑定报表添加链接子报表 36415.4.2 使用未链接子报表和未绑定报表 36615.5 自定义报表 36715.5.1 添加和删除报表的节 36715.5.2 分页控制以及打印页眉和页脚 36815.5.3 减少报表的长度 36815.6 向报表添加其他控件 36815.7 邮递报表快照 36915.8 疑难解答 37015.9 现实世界—报表设计的技巧 371第四部分 在Intranet和Internet上发布数据第16章 超级链接和HTML 37316.1 允许数据传送的Web页面 37316.2 Microsoft的Internet程序透视 37416.2.1 数字神经系统和Windows DNA 37516.2.2 Microsoft的Internet相关的客户端产品 37616.2.3 Microsoft的服务器方组件 37816.2.4 Microsoft支持Internet相关产品的技术 37816.3 用超级链接在Web和Intranet中导航 37916.4 理解Access 2000的超级链接字段数据类型 38216.4.1 测试Northwind Orders表中的超级链接 38216.4.2 编辑和插入传统的超级链接 38416.4.3 链接到一个Word文档的书签 38416.4.4 指定到Intranet Server或者Web上的页面的超级链接 38716.4.5 为超级链接添加屏幕提示 38816.4.6 使用表超级链接打开一个Access对象 38816.5 在Access控件上使用超级链接 38916.6 指定其他Internet URL 39016.7 疑难解答 39116.8 现实世界—到Internet或者不到Internet 391第17章 从表和查询生成Web页面 39317.1 简化基于Web的决策支持方式 39317.2 将表和查询数据表导出到HTML 39317.2.1 创建一个非格式化的Web页面 39517.2.2 从一个查询创建 Web页面 39817.3 使用HTML模板 39917.3.1 使用包含在Office 2000中的AccessHTML模板 39917.3.2 用模板导出一个查询数据表 40117.4 将报表导出到HTML 40217.5 从HTML表导入数据 40417.6 创建动态 Web页面 40617.6.1 理解ASP 40717.6.2 为ASP创建一个ODBC数据源 40817.6.3 将Access查询导出为ASP 40817.7 疑难解答 41017.8 现实世界—ASP和DAP 410第18章 设计数据访问页 41218.1 转向一个新的Access窗体模型 41218.2 理解Access的动态HTML实现 41318.2.1 支持DHTML和DAP的技术 41318.2.2 DOM HTML和DHTML 41418.3 DAP入门 41518.3.1 Review Products页 41518.3.2 Review Orders页 41818.3.3 HTML源代码编辑器 41918.3.4 Analyze Sales数据透视表页 42018.3.5 Sales页 42118.3.6 读写页 42318.4 使用“数据页向导”创建简单的DAP 42418.5 使用自动创建数据页创建纵栏式DAP 42718.5.1 使用记录浏览控件的筛选和排序特征 42818.5.2 修改自动创建数据页DAP的设计 42918.5.3 改变记录浏览控件的属性 43118.6 从头开始创建DAP 43218.6.1 用页字段列表添加一个数据透视表 43218.6.2 数据透视表列表控件在IE 5.0中的使用 43318.6.3 在IE5.0中更改透视表的属性 43418.7 用数据透视表列表向DAP添加图表 43518.7.1 为数据透视表列表创建一个查询 43518.7.2 添加和格式化数据透视表列表 43718.7.3 使用图表向导向数据透视表列表绑定一个Office 图表 43818.8 生成分组页 44018.8.1 创建一个三级层次分组页结构 44018.8.2 填充明细内容 44218.8.3 添加相关表的字段和标题 44318.9 疑难解答 44418.10 现实世界—DAP准备好大展宏图了吗? 444第五部分 集成Access与其他Office 2000应用程序第19章 往窗体和报表中添加图表和图形 44719.1 用图形丰富窗体和报表 44719.2 用Microsoft Graph 2000创建图形和图表 44719.2.1 创建作为图形基础的查询 44819.2.2 使用“图表向导”创建非链接图形 44919.2.3 更改图形的设计特征 45219.2.4 从交叉表查询中创建图形 45519.2.5 把图形链接到表或查询中的单个记录上 45719.3 在页中使用图表Web控件 45819.3.1 为图表Web控件设计查询 45919.3.2 添加基于单数据列系列的office图表 45919.3.3 更改Office图表的属性 46219.4 往窗体或报表中添加未绑定对象控件 46319.4.1 在Personnel Actions查询中包含相片 46319.4.2 在Personnel Actions窗体中显示雇员的图像 46319.4.3 缩放图形对象 46519.4.4 检查位图图像文件格式 46619.5 使用图像控件 46719.6 疑难解答 46819.7 现实世界—可视化数据 468第20章 与Microsoft Excel一起使用Access 47020.1 用数据透视表切分数据 47020.2 使用Access的数据透视表向导 47020.2.1 为数据透视表创建查询 47120.2.2 用向导产生一个数据透视表窗体 47220.3 在Excel中处理数据透视表 47520.3.1 提高数据透视表的格式化程度 47520.3.2 用数据透视表切分数据 47720.3.3 通过筛选进行切分 47820.3.4 折叠或展开明细数据的显示 47920.3.5 更改维的坐标轴 48120.4 格式化数据透视表报表 48120.5 从数据透视表中创建数据透视图表 48220.6 把Excel用作OLE服务器 48420.6.1 在窗体中嵌入常规的Excel工作表 48420.6.2 从OLE对象中抽取值 48620.6.3 链接到Excel工作表中一定范围的单元格 48720.7 疑难解答 48920.8 现实世界—OLAP和数据透视表 489第21章 与Microsoft Word和邮件合并一起使用Access 49221.1 集成Access 2000和Word 2000 49221.2 使用Access邮件合并向导 49221.2.1 创建和预览新套用信函 49221.2.2 使用已有的主合并文档及新数据源 49421.3 与Access数据库一起使用Word 2000的邮件合并功能 49721.3.1 用Microsoft查询和ODBC数据源来创建新的邮件合并数据源 49721.3.2 从已有查询创建套用信函 50121.4 在Access表中嵌入或链接Word文档 50221.4.1 在表中嵌入或链接Word 2000文档 50321.4.2 创建窗体以显示被嵌入文档 50421.5 疑难解答 50621.6 现实世界—Microsoft查询和OLE DB 506第六部分 使用高级Access技术第22章 关系数据库设计与实现的研究 50922.1 查看Access 2000新增的数据库设计功能 50922.2 集成对象和关系数据库 51022.3 理解数据库系统 51022.3.1 数据库设计的目标 51022.3.2 数据库设计过程 51122.3.3 数据库设计的面向对象方法 51222.3.4 数据库术语 51422.3.5 关系数据库中表和关键字的类型 51522.4 数据建模 51522.4.1 应用数据库 51622.4.2 主题数据库 51622.4.3 图表化数据模型 51722.4.4 数据库模式 51722.5 把数据规范化到关系模型 51822.5.1 规范化规则 51822.5.2 关系类型 52222.6 使用Access 2000的“表分析器向导” 52522.7 用数据库文档管理器创建数据字典 52822.8 使用Access索引 52922.9 实施数据库完整性 53022.9.1 保证实体完整性和可审计性 53022.9.2 维护参照完整性 53322.10 疑难解答 53322.11 现实世界—为什么学习关系理论? 533第23章 结构化查询语言 53523.1 理解Access 2000中SQL的角色 53523.2 使用Access学习SQL 53623.3 理解SQL语法 53723.4 用SQL编写SELECT查询 53723.4.1 使用SQL标点号和符号 53923.4.2 使用SQL语句创建Access查询 53923.4.3 使用SQL聚集函数 54123.4.4 用SQL创建连接 54223.4.5 使用联合查询 54323.4.6 实现子查询 54523.5 编写操作和交叉表查询 54623.6 添加IN以使用其他数据库中的表 54623.6.1 操作其他Access数据库 54723.6.2 对其他数据库类型使用IN子句 54823.6.3 用Jet DDL创建表 54823.6.4 比较ANSI和Jet SQL 54923.6.5 Access中SQL保留字 54923.6.6 对应于SQL关键字的Jet SQL保留字 54923.6.7 用于替代ANSI SQL关键字的Access函数和操作符 55023.6.8 不存在于ANSI SQL中的Jet SQL保留字、操作符和函数 55123.6.9 Jet 的 DISTINCTROW 和 SQL 的DISTINCT关键字 55223.6.10 Jet SQL保留字不支持的通用 ANSI SQL关键字和功能 55423.7 在窗体、报表和宏中使用SQL语句 55523.8 疑难解答 55523.9 现实世界—把SQL作为第二种语言 555第24章 多用户网络应用的安全 55824.1 网络化Access 2000应用程序 55824.2 在网络化环境下安装Access 55924.3 与其他用户共享你的Access数据库文件 55924.3.1 为文件共享创建一个文件夹和系统文件 55924.3.2 准备共享你的数据库文件 56224.3.3 为文件共享而拆分数据库 56224.3.4 修补链接、数据源和DAP的超链接 56424.3.5 用“工作组管理员”选择工作组 56524.4 使用命令行来打开共享数据库 56624.5 维护数据库安全 56824.5.1 指定局域网上数据库安全的原则: 56824.5.2 用密码保护单个数据库 56924.5.3 管理组和用户 57024.6 理解数据库对象所有权 57524.6.1 对象的所有者权限 57524.6.2 更改数据库对象的所有权 57524.7 授予和撤消对数据库对象的访问权限 57624.7.1 使用安全向导更改权限 57724.7.2 手工更改组权限 58024.7.3 给特定用户授予其他权限 58124.7.4 授予对其他工作组中某数据库的访问权限 58124.8 在网络上共享数据库 58224.8.1 在Windows 9x网络上共享数据库文件 58224.8.2 用户级安全共享文件 58324.8.3 共享来自网络服务器的数据库文件 58424.9 访问共享的工作组和数据文件 58424.9.1 粘附被共享的工作组系统文件 58524.9.2 刷新到共享数据文件的链接 58524.10 管理数据库和应用 58624.10.1 备份和恢复数据库 58624.10.2 压缩和修复数据库文件 58724.10.3 加密和解密数据库文件 58724.11 疑难解答 58824.12 现实世界—共享文件与客户/服务器后端 588第25章 创建Access数据项目 59025.1 将Access转变成客户/服务器模式 59025.2 理解MSDE的作用 59125.2.1 SQL Server版本与特性 59125.2.2 MSDE的优点 59225.3 安装与启动MSDE 59225.4 熟悉ADP 59525.4.1 适应MSDE与SQL Server 7.0的特性 59525.4.2 启动Northwind CS示例工程 59625.5 使用项目设计器 59725.5.1 MSDE表操作 59825.5.2 浏览MSDE视图 60025.5.3 图形化表关系 60225.5.4 编写存储过程 60325.5.5 为表添加触发 60425.6 使用升迁向导来创建ADP 60525.6.1 运行Access升迁向导 60525.6.2 检查向导成功还是失败 60725.7 使用DTS向导压缩数据库 60825.8 连接远程MSDE数据库 61025.8.1 使用SQL Server客户网络实用工具 61025.8.2 验证与使用远程数据库 61125.8.3 建立MSDE安全 61225.9 疑难解答 61325.10 现实世界—尝试中的 ADP 61425.10.1 ADP的缺陷 61425.10.2 SQL Server 的优点:ADP、MSDE和SQL Server 7.0 614第七部分 Access应用的程序设计和转换第26章 编写VBA代码 61726.1 理解VBA在Access中的作用 61726.2 介绍VBA 6.0 61826.2.1 在什么情况下使用VBA代码 61826.2.2 VBA命名习惯 61826.2.3 模块、函数和子过程 61926.2.4 模块元素 62026.2.5 VBA和Access模块的引用 62126.2.6 VBA中数据类型和数据库对象 62226.2.7 变量和命名习惯 62326.2.8 符号常量 62726.2.9 VBA命名的可选参数 62826.3 控制程序流 62826.3.1 转移和标号 62926.3.2 条件语句 62926.3.3 重复操作:循环 63126.4 处理运行错误 63326.4.1 使用Err对象查找错误类型 63426.4.2 在窗体或者报表模块中使用Error事件 63426.5 浏览VBA编辑器 63526.5.1 模块窗口的工具栏 63526.5.2 模块快捷键 63626.5.3 VBA帮助系统 63726.6 检验实用工具函数模块 63726.6.1 向IsLoaded()函数中加一个断点 63826.6.2 用Debug对象把结果输出到立即窗口 63926.6.3 使用文本比较选项 64026.7 现实世界—宏的应用 640第27章 理解通用数据访问、OLE DB和ADO 64227.1 透视Microsoft新的数据访问组件 64227.2 与多种数据源的接口 64327.2.1 用OLE DB自底向上重新设计 64327.2.2 将OLE DB接口映射到ADO 64527.2.3 比较ADO和DAO对象 64627.3 创建ADODB.Recordsets 64727.4 用代码将控件绑定到记录集 64927.5 使窗体可修改 65027.5.1 连接到NorthwindCS MSDE数据库 65127.5.2 用DAO3.6代替ADO2.1 65127.6 浏览顶层ADO属性、方法和事件 65227.7 与ADODB.Connection对象一起工作 65427.7.1 Connection的属性 65427.7.2 Errors集合和Error对象 65627.7.3 Connection的方法 65727.7.4 Connection事件 65927.8 使用ADODB.Command对象 66027.8.1 Command对象的属性 66027.8.2 Parameters集合 66127.8.3 Parameter对象 66127.8.4 Command方法 66327.8.5 把参数值传递给存储过程的代码 66427.9 理解ADODB.Recordset对象 66627.9.1 Recordset的属性 66627.9.2 Fields集合和Field对象 66927.9.3 Recordset的方法 67127.9.4 断开连接的Recordset 67427.9.5 Recordset事件 67427.10 疑难解答 67527.11 现实世界—努力学习和使用ADO 675第28章 用VBA6.0响应事件 67728.1 介绍事件驱动的编程 67728.2 理解类模块的角色 67728.2.1 Main Switchboard类模块 67828.2.2 在Main Switchboard窗体中的事件处理代码 67928.3 在对象浏览器和项目浏览器中检查工程类模块成员 68128.4 通过命令按钮向导添加事件处理代码 68228.5 用函数来响应事件 68428.6 理解Access 2000的事件指令集 68528.7 使用Access 2000的Docmd方法 68928.8 用命令条对象定制应用 69428.9 指定一个自定义CommandBar并设置其他启动属性 69628.10 用VBA引用Access对象 69728.10.1 引用打开的窗体或报表及其属性 69728.10.2 引用控件及其属性 69828.10.3 引用子窗体或主窗体中的控件 69928.11 使用另一种集合语法 69928.12 响应由窗体和控件触发的数据事件 69928.13 疑难解答 70128.14 现实世界—处理事件驱动的编程 701第29章 组合框和列表框编程 70229.1 流线型决策支持前台 70229.2 用组合框约束查询选择 70229.2.1 设计决策支持查询 70329.2.2 创建窗体并添加列表框 70329.2.3 向窗体添加查询组合框 70429.3 添加代码生成查询的SQL语句 70729.4 将组合框窗体转换成Access数据项目 70929.4.1 导入并测试组合框窗体 71029.4.2 使“行来源”SQL语句与Transact-SQL语句一致 71029.5 详化一个列表框选择 71229.5.1 创建详化查询和添加列表框 71229.5.2 详化列表框编程 71329.6 给列表框和组合框添加新的特征 71429.6.1 重复列表框数据项和选择一个数据项 71429.6.2 添加一个选项来选择所有国家或产品 71529.7 向ADP转移时处理Jet专有函数 71829.8 疑难解答 71929.9 现实世界—Access组合框和列表框 720第30章 使用ADO记录集、窗体和控件 72130.1 利用VBA操纵记录集 72130.1.1 生成临时记录集 72130.1.2 应用Move方法 72330.1.3 在循环中使用EOF和BOF 72330.1.4 使用AbsolutePosition属性 72430.2 使用Find方法和书签 72430.3 修改记录集的记录 72630.3.1 编辑和增加记录 72630.3.2 删除记录 72630.4 由记录集填充组合框 72730.4.1 创建frmCombo2并改变组合框设计 72730.4.2 用代码填充组合框 72830.5 改变组合框列表的排序 72930.6 由记录集对象填充列表框 73130.7 格式化值列表组合框的列 73330.8 将frmComboVBA导出到一个Access数据项目 73630.9 疑难解答 73730.10 现实世界—适应ADO 737第31章 Access 9x应用向Access 2000的转换 73831.1 理解.mdb文件升级过程 73831.2 把不安全文件从Access 9x转换到Access 2000 73831.2.1 在Access 2000中第一次打开文件时升级 73831.2.2 在Access 2000中打开文件后升级 74031.3 转换安全的Access 9x文件 74131.3.1 在一个混合的Access 9x和Access2000环境中进行升级 74131.3.2 升级后台数据库和工作组文件 74131.4 将Access 2.0应用文件.mdb升级为Access 2000 74131.4.1 Win16函数调用转换为Win32函数调用 74231.4.2 表上的32个索引限制 74331.4.3 将16位OLE控件转换为32位ActiveX控件 74431.5 疑难解答 74431.6 现实世界—升级的诱惑 744

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值