习题8
数据库是供人们共享使用的,在数据库应用中,不但要考虑数据的处理和使用,还应该考虑数据库的管理与安全等维护问题。Access是一个优秀的数据库管理程序,具有完备的数据库外围管理功能,包括安全管理、数据转换以及数据库备份和修复等。本章学习的内容是维护数据库系统的必备知识,具体内容如下:
● 数据库安全;
● 数据库打包、签名和分发;
● 数据库的压缩和修复;
● 数据库的备份和还原;
● 不同文件格式转换。
8.1 数据库安全管理
Access 2007在数据库安全管理方面提供了改进的安全模式,简化了数据库安全配置过程,下面介绍其安全性方面新增的功能。
(1)在Access 2007中,可以打开并查看数据而不必判断是否启用数据库。Access 2007提供了即使在没有启用任何被禁用的VBA代码或组件时仍可以查看数据的功能。而在Access 2003中必须先对数据库进行代码签名并信任数据库,才能在安全级别“高”的情况下查看数据。
(2)Access 2007使用信任中心来创建或更改受信任位置并设置安全选项,它取代了Access早期版本中使用的“非常高”、“高”、“中”以及“低”选项的安全级别模式。信任中心的设置将影响到数据库的操作,并且可以用来评估数据库中的组件是否安全、数据库是否应该被禁用或者启用。
(3)Access 2007使用如图8-1所示的“消息栏”取代早期版本中的各种警告信息。当用户确定信任数据库中被禁用的某些组件时,可以通过单击“选项”按钮来启用这些组件。
图8-1 安全警告信息
(4)Access 2007提高了易用性。它可以直接打开存放在信任位置的数据库文件,而不会显示警告消息或要求启用任何禁用的内容。当打开已经进行了数字签名并且其发布者被信任的早期Access版本创建的数据库文件时,系统将不再产生提示需要判断“是否信任”等信息。
(5)Access 2007使用新方式签名并分发创建的数据库文件。如果将数据库从签名的包中解压缩到受信任位置,则数据库将直接运行而不显示“消息栏”。如果将数据库从签名的包中解压缩到不受信任位置,但用户信任包中的证书,并且确定签名有效,系统则不提示需要用户做出“是否信任”的决定。
8.1.1 Access安全机制
Access数据库是由一组相互依赖、共同作用的对象(如表、窗体、查询、报表、宏、模块)组成的。而其中的某些组件会给Access数据库带来风险,默认情况下,Access 2007将禁止下列组件:
● 动作查询;
● 数据定义语言(DDL)查询;
● SQL传递查询;
● ActiveX控件;
● VBA代码以及其中任何不安全的表达式;
● 允许用户修改数据库或者访问数据库之外资源的宏操作。
当需要启用这些被禁用的组件时,单击如图8-1所示的警告信息上的“选项”按钮,在弹出的如图8-2所示的对话框中选择“启用此内容”选项后,单击“确定”按钮即可。
图8-2 启用被禁用的组件
Access 2007为了确保数据的安全,在用户每次打开数据库时将执行一系列的安全检查,这些操作对于用户来说并没有很明显的感觉。
8.1.2 数据库加密与解密
数据库中存放的都是重要数据,一般不希望被人随意打开查看。为数据库设置打开密码,是保障数据库安全最简单有效的方法。设置完密码后,只有知道密码的用户才可以打开数据库。在数据库打开之后,数据库中的所有对象对用户都将是可用的。对于在某个用户组中共享的数据库或是单独的计算机上的数据库,如果不希望其他用户查看数据库,设置数据库密码通常就足够了。
1.加密数据库
1)以独占方式打开数据库
要为数据库设置打开密码,必须以独占方式打开这个数据库,以独占方式打开数据库步骤如下。
(1)启动Access 2007,但不要打开数据库。如果在网络下共享数据库,则应确保其他用户都已经关闭了该数据库。
(2)选择“Office按钮”|“打开”命令,弹出“打开”对话框。在对话框中选择要设置密码的数据库文件。
(3)单击“打开”按钮右边的下拉箭头,选择“以独占方式打开”选项,打开数据库,如图8-3所示。
图8-3 “打开”对话框
2)设置密码及密码生效
以独占方式打开数据库后,就可以设置密码了,设置密码步骤如下。
(1)单击“数据库工具”功能区的“数据库工具”工具组中的“用密码进行加密”按钮,如图8-4所示,弹出“设置数据库密码”对话框,如图8-5所示。
图8-4 用密码进行加密
图8-5 设置数据库密码
(2)在“设置数据库密码”对话框中的“密码”文本框中,输入指定的密码,在“验证”文本框中再次输入指定的密码,单击“确定”按钮,完成对数据库密码的设置。
这样,以后每次打开该数据库时,将弹出一个“要求输入密码”对话框(见图8-6),提示用户输入该数据库的密码,只有输入正确的密码,才可能打开数据库。如果输入的密码不正确,将提示用户密码无效,需要重新输入,如图8-7所示。只有正确输入密码,才能打开数据库。
图8-6 “要求输入密码”对话框
图8-7 密码无效
2.撤消密码
如果要删除数据库的打开密码,操作步骤如下。
(1)启动Access 2007,关闭设置了密码的数据库。
(2)以独占方式打开要撤销密码的数据库。
(3)单击“数据库工具”功能区的“数据库工具”工具组中的“解密数据库”按钮,该命令只有设置了数据库密码之后才可用。
(4)打开“撤消数据库密码”对话框,如图8-8所示。
(5)在“密码”文本框中,输入当前数据库的密码。
(6)单击“确定”按钮,即可删除数据库的密码。
图8-8 撤消数据库密码
8.1.3 对数据库进行打包、签名和分发
对数据库进行打包并签名是传达信任的一种方式,通过向数据库添加签名代表用户认为该数据库是安全的以及包含的内容是可以信任的。在进行数字签名之前,必须确保数据库获取了数字证书。数字证书可以形象地比喻成进行数字签名的笔或者印章,如果数据库是为商业分发目的而创建的,则必须获得商业证书颁发机构(CA)颁发的证书,如果创建的数据库仅用于有限的个人场合,则可以使用Microsoft OfficeProfessional 2007提供的工具创建自签名证书。
1.获取数字证书
要想获得系统工具创建的数字证书,必须使用Microsoft Office工具中的“VBA项目的数字证书”命令,如果在安装Access 2007时没有安装该项工具,则按照如下步骤安装。
(1)在系统控制面板上双击“添加或删除程序”图标,打开其对话框。
(2)在“添加或删除程序”对话框中找到Microsoft Office Enterprise 2007程序名,单击“更改”按钮。
(3)在打开的“更改Microsoft Office Enterprise 2007的安装”对话框中选择“添加或删除功能”选项,单击“继续”按钮。
(4)在打开的“安装选项”对话框中单击“Office共享”命令旁边的“+”,打开如图8-9所示的对话框,单击“VBA项目的数字证书”,选择“从本机运行”命令,单击“继续”按钮即可。
图8-9 本机运行VBA项目的数字证书
安装好“VBA项目的数字证书”工具后,就可以使用该工具创建属于个人使用的数字证书了。具体的操作如下。
(1)选择“开始”|“所有程序”| Microsoft Office |“Microsoft Office工具”命令,选择“VBA项目的数字证书”命令。
(2)打开如图8-10所示的“创建数字证书”对话框,输入证书的名称,单击“确定”按钮后,将弹出如图8-11所示的对话框,提示用户已经成功创建了一个数字证书。
图8-10 创建数字证书
图8-11 成功创建数字证书
2.数字签名
数字签名技术是在网络系统虚拟环境中确认身份的重要技术,完全可以代替现实过程中的“亲笔签字”,在技术和法律上有保证。它的使用能够保证信息传输的完整性、发送者的身份认证以及防止交易中发生抵赖等。将数字签名应用于打包数据库步骤如下。
(1)选择“打包并签署”命令,见图8-12。
图8-12 选择“打包并签署”命令
(2)选择证书,见图8-13。
图8-13 选择证书
(3)创建签名包,见图8-14。
图8-14 创建签名包
8.1.4 受信任位置
受信任位置是一组指定的存放数据库文件的位置。系统将认为放在这些位置上的数据库都是安全的,在打开这些位置上的数据库时,不再进行信任检查。查看和设置受信任位置的方法如下。
(1)单击“Access选项”对话框中的“信任中心”,然后在“Microsoft Office Access信任中心”下,单击“信任中心设置”,见图8-15。
图8-15 选择“信任中心”
(2)在“信任中心”对话框中,单击“受信任位置”,如图8-16。
图8-16 信任中心的受信任位置
(3)对受信任位置进行添加、删除、修改操作。
完成相应操作和设置后,即可使用任一方法将数据库文件移动或复制到受信任位置。受信任位置可以是硬盘或网络共享上的文件夹。
8.2 数据库管理维护
数据库除了使用之外,也应该适时进行维护管理,以保证数据的安全和数据库的运行效率。以下介绍一些Access 2007的数据库管理功能。
8.2.1 数据库的压缩和修复
使用数据库就是不断添加、删除、修改数据和各种对象的过程。所以,数据库文件会变得支离破碎,导致磁盘的利用率降低、数据库的访问性能变差。压缩数据库文件实际上是复制该文件,并重新组织文件在磁盘上的存储方式。因此,文件的存储空间大为减少,读取效率大大提高,从而优化了数据库的性能。修复数据库文件可以修复数据库中表、窗体、报表或模块的损坏以及显示打开特定窗体、报表或模块所需的信息。在Access数据库中,压缩和修复是同时进行的。要压缩和修复数据库,可以先打开数据库,也可以先不打开的数据库。
1.不打开数据库
(1)启动Access 2007,并且不打开任何数据库,选择“Office按钮”|“管理”|“压缩和修复数据库”命令,打开“压缩数据库来源”对话框,如图8-17、图8-18所示。
图8-17 压缩和修复数据库
(2)选择要压缩的数据库文件,单击“压缩”按钮,打开“将数据库压缩为”对话框,如图8-19所示。选择保存路径,然后输入压缩后的数据库文件名,单击“保存”按钮,系统将对数据库文件进行压缩并生成指定的文件。
图8-18 压缩数据库来源
图8-19 数据库压缩为对话框
2.打开数据库
打开要进行压缩的数据库,选择“Office按钮”|“管理”|“压缩和修复数据库”命令,Access直接对数据库进行压缩,并且不生成另外的数据库文件。在打开了数据库以后,要想知道数据库的大小,可以选择“Office按钮”|“数据库属性”命令,打开该数据库的“属性”对话框,选择“常规”选项卡,即可得到数据库大小的值。
在大多数情况下,当用户打开、压缩、加密或解密数据库时,Access 2007都将检测数据库是否损坏。如果试图打开一个已经损坏的数据库,Access 2007会提示用户数据库已被损坏,并弹出对话框,建议用户修复已经被损坏的数据库。在一般情况下,单击“是”按钮,Access 2007会自动检测并把损坏的数据库恢复到原来的状态。
8.2.2 生成ACCDE文件
将数据库保存为ACCDE文件,将在压缩原来的数据库的同时,删除所有可编辑的源代码。此后用户将不能进行查看或编辑,并且减少磁盘的存储空间,优化内存,提高数据库的性能。将数据库保存为ACCDE文件,能防止以下操作:
①在设计视图中查看、修改或创建窗体、报表和模块;
②添加、删除或更改对对象库或数据库的引用;
③更改程序代码;
④导入或导出窗体、报表、Web页或模块。
将数据库生成为ACCDE文件是保护数据库的一个好方法。但是,一定要保存生成ACCDE文件的ACCDB文件(不能把它删除),因为只能在ACCDB文件中修改窗体、报表等对象的设计。一个安全的方法是:生成的ACCDE文件使用与ACCDB不同的主文件名。将数据库转换为ACCDE文件的操作步骤如下。
(1)启动Access 2007,打开需要转换的数据库文件。
(2)单击“数据库工具”功能区的“数据库工具”工具组中的“生成ACCDE”按钮。
(3)打开“保存为”对话框,在该对话框中,指定数据库的名称和保存路径。默认位置为原文件的位置,默认文件名也为原文件名。
8.2.3 数据库的备份和还原
备份和还原是所有数据库设计的重要组成部分,因为它提供了几乎是最可靠的维护数据的方法。备份数据库的操作很简单,只要将建好的Access数据库复制成另一个文件,并且把它存放在不同的位置即可。备份可以用Access自带的备份命令,也可以用Windows的复制、粘贴命令实现。用Access自带的命令备份数据库,操作步骤如下。
(1)打开要备份的数据库,关闭所有的数据库对象。
(2)选择“Office按钮”|“管理”|“备份数据库”命令,如图8-20所示。
图8-20 备份数据库
(3)弹出“另存为”对话框,如图8-21所示。
图8-21 “另存为”对话框
(4)选择备份数据库存放的位置,输入备份数据库文件名。
(5)单击“确定”按钮,Access为原数据库创建了一份备份。
这种方法是以复制文件的形式备份数据库的,还原时,只需将复制的文件代替原文件即可。
另一种方法是在Windows下,在磁盘上直接找到要备份的数据库文件,将该文件复制、粘贴到另一个位置即可。如果要恢复数据库,只需要将备份的文件拷贝到原来位置,替换掉现有文件即可。
8.2.4 不同文件格式转换
Access 2007提供了转换实用程序来转换老版本(如Access 2000/2003)创建的数据库,用户可以把这些文件转换成Access 2007的数据库文件,以充分利用Access 2007的强大功能。Access 2007还能将Access 2007的数据库文件转换成早期Access版本文件。
将老版本的数据库文件转换到Access 2007数据库文件的操作步骤如下。
(1)启动Access 2007,打开需要转换的老版本数据库文件。
(2)在数据库窗口中,选择“Office按钮”|“转换”命令,弹出“另存为”对话框,在其中设置文件保存的路径和名称,如图8-22所示。
(3)在图8-22所示的对话框中单击“保存”按钮,弹出提示信息框,如图8-23所示,单击“确定”按钮,即可转换老版本的数据库文件。
说明:数据库窗口中的“转换”命令,只有在打开老版本的数据库文件时,才可用。
将当前数据库文件转换为早期版本的数据库文件,首先选择“Office按钮”|“另存为”命令,弹出相应对话框,在“将数据库另存为其他格式”选项区中选择需要转换的Access版本,弹出“另存为”对话框,设置转换文件的保存路径和名称,单击“保存”按钮,即可完成转换。
图8-22 另存为Access 2007文件
图8-23 提示信息框
在实际使用计算机的过程中,不同的用户可能使用不同的应用程序来存储数据。Access提供了能够存取多种格式数据的功能,实现了Access数据库和其他数据库文件共享数据,从而大大扩展了Access数据库的应用范围。Access能够存取的外部数据库格式有:Access数据库、文本文件、Excel文件、XML文件、ODBC、SQL Server数据库等。
习题8
1.简述Access2007的安全机制如何运行。
2.简述如何对Access2007数据库进行加密、解密操作。
3.简述如何对Access2007数据库进行压缩、修复操作。
4.简述受信任位置的作用,并创建一个受信任位置。
5.简述如何将老版的Access数据库文件转换成Access2007版文件。