日期:2013-09-15  浏览次数:20496 次

    在Office 2000下,Access数据库的安全机制曾经更为完善。除了对数据库设置密码保护,对数据库进行编码紧缩,还可以启用用户级的安全机制,在用户级别上控制对数据库的访问。

 一、数据库设置密码

 对于单机使用的数据库或者是需求任务组共享的数据库,仅设置密码保护较为合适。知道密码的组成员,都无数据库的完全操作权限,彼此之间的使用权限没有什么区别。设置密码的步骤如下:

 启动Microsoft Access,在弹出的选择窗口中点取消,不打开任何数据库。

 点击菜单:文件---打开,在弹出的打开窗口中,选中要打开的数据库文件。然后在打开按钮的右侧展开箭头上单击选定以独占方式打开,用独占方式打开选定的数据库。

 在Access窗口菜单上点击:工具—安全—设置数据库密码。在弹出的密码和验证输入框中,输入密码,留意区分大小写,并请记住。然后点击确定按钮。

 关闭数据库,退出Access环境,密码设置完毕。下次再打开此数据库,就会提示输入密码,密码正确才能打开数据库。

 如要复制数据库,请不要使用数据库密码。如设置了密码,复制的数据库将不能同步。数据库的密码是和数据库文件放置在一同,而不是放在任务组信息文件中。

 二、数据库紧缩编码

 为了进一步对数据库进行加密保护,可以对数据库进行编码紧缩。这样使用其它工具程序或字处理等软件就无法查看此数据库的内容。而对用户在Access下的使用则不影响。编码的步骤如下:

 启动Microsoft Access,在弹出的选择窗口中点取消,不打开任何数据库。

 点击菜单:工具—安全—加密/解密数据库。

 在弹出的数据库加密/解密窗口中,选取要编码的数据库,点击确定按钮。

 在弹出的数据库加密后另存为窗口中,在文件名输入框中输入编码后的文件名,点击保存按钮。编码紧缩后的数据库被另保为另一个文件。

 三、用户级安全机制

 使用用户级的安全机制,可以更灵活更安全的保护数据库。在这种安全机制下,

 在Access关联的任务组信息文件中建立用户和任务组帐户,用来管理用户;在具体的数据库中管理对象权限,可以给用户和任务组分别指定使用权限。用户要输入用户名称和密码才能打开数据库,对数据库的操作要受拥有权限的限制。

    1、任务组信息文件

 在Microsoft Access中,用户和任务组的信息帐户,是存储在任务组信息文件中的,即便用任务组信息文件来管理用户和任务组。而默认的任务组信息文件是:C:Program FilesMicrosoft OfficeOfficeSystem.mdw。

 用户也可以建立本人的任务组信息文件,用来按照本人的需求来划分和管理用户和任务组,普通是存放在数据库所在的任务目录下的Secured.mdw文件中,当然用户也可以本人指定文件名和存放位置,但文件的扩展名不可以变。

 任务组信息文件与整个Access关联对应着,在Access运转环境下无效,而不是对应某个数据库的。每次Access启动,都要读取任务组信息文件从而得到用户和任务组的帐户信息。默认是读取默认任务组信息文件System.mdw,但用户可以指定Access与哪个任务组信息文件关联:运转任务组信息管理器Wrkgadm.exe,(通常在C:Program FilesMicrosoft OfficeOffice下曾经有指向该程序的快捷方式MS Access Workgroup Administrator)可以创建新的任务组信息文件或指定Access联接某一个任务组信息文件。还可以在启动Access的时候用命令行启动参数选项/wrkg <任务组信息文件名>来指定联接的任务组信息文件。

 2、任务组信息文件的管理

 启动MS Access Workgroup Administrator快捷方式,在任务组管理员窗口中,点联接按钮可以更改Access启动时要联接的任务组信息文件:在弹出的任务组信息文件窗口中指定文件的路径名称即可。点创建按钮,则可以创建一个新的任务组信息文件:在弹出的任务组所有权信息窗口中,输入任务组名称、单位、任务组ID三项内容。在任务组信息文件窗口中输入任务组信息文件数据库的存放路径和名称。这就可以创建新的任务组信息文件,并曾经建立了关联。

 任务组ID是任务组独一的独一性标识,用于区别于其它的任务组信息文件,必需要保存好,必要时可以凭此重建文件。

 在Access下,点击菜单:工具—安全—用户级安全性导游,选中新建任务组信息文件,也可以建立新的任务组信息文件。

 3、安全机制

 在用户级安全机制下,每个用户有用户名称、团体标识(PID)、依据名称和PID用加密算法产生的独一安全标识(SID)、密码;每个任务组有独一的任务组名称、团体标识(PID)、安全标识(SID),组没有密码,也不能用组名登录。

 用户和组的团体标识(PID)是独一的,由4~20个字符组成,区分大小写。用户和组的安全标识SID(Security ID),是由名称和PID用加密算法产生的,独一性的。

 在任务组信息文件中(实际是特殊的Access数据库),表MsysAccounts中保存用户和组的名称、SID、密码信息,用户和组的SID和用户的密码,是用二进制保存的。在表MsysGroups中,存储任务组SID和用户SID之间的对照关系,以此判断用户属于哪个组。这两个表都是隐藏系统表。

 用户和组,对于数据库机器各对象之间的对应操作权限关系,并不保存在任务组信息文件中,而是存放在数据库文件中,是因数据库而异的。在Access数据库(.mdb)文件中,有一个隐藏系统表MSysACEs,其中存放着用户和组的SID以及与之对应的数据库各对象的标识ID,还有操作权限信息。以此表示用户和组与数据库对象之间的对应和操作权限关系。

    在用户打开数据库时,Microsoft Access依据用户输入的用户名称和密码,在任务组信息文件的MsysAccounts表中查找该用户的SID,若未找到则提示帐户无效并让重新输入;若找到了用户的SID,则在MsysGroups表中查找到用户所属组的SID。依据找到的用户和组的SID,再去数据库(.mdb)的MSysACEs表中查找对应的数据库对象ID和其权限信息,由此可以确定用户和组可以访问什么数据库对象及有什么操作权限。

 4、用户与任务组

 在默认的任务组信息文件System.mdw中,默认的有三个帐户:Admin、Creator、Engine,其中Creator和Engine是Microsoft Jet数据库引擎内建的,用户无法干涉。管理员帐户Admin,则是独一的默认帐户,拥有对数据库中所有对象的全部权限,在中文Access中,帐户名可以是“管理员”也可以是英文下的Admin。

 在默认的任务组信息文件中,默认设置了两个任务组:管理员组和用户组。

 在默认形状下,用户启动Access时使用的是Admin帐户,且无须输入用户名称和密码,由于其名称Admin默认,而初始密码为空。若:用此默认方式启动Access,然后点击菜单工具—安全—用户与组帐号,在用户与组帐号窗口中,选更改登录密码选项卡,在旧密码输入框中空着,新密码、验证输入框中填入新密码,就可以增设了管理员帐号的新密码。如果不是默认登录方式进入的,只须在旧密码输入框中填入旧密码,就可以更改密码。对于其它的用户,也可以同样的更改本人的密码。设置了密码后,再启动Access打开数据库,就会要求输入用户帐号了。

 管理员帐号的SID,对于所有的任务组信息文件都是一样的,这意味着:无论是用哪一个任务组信息文件关联到Access启动系统,都可以使用管理员帐号去访问所有本机的Access数据库。

 创建对象的用户,是该对象的所有者,拥有全部权限。即便被管理员撤消了权限,也可以进入用户与组权限对话框,给本人指定权限。管理员不能永世彻底撤消对象所有者的权限,但是可以改变对象的所有者。所以管理员除了要控制好权限外,还要适时的改变对象的所有者,才能保证安全。

 5、用户与任务组的管理与权限

 设置任务组,是为了分配和管理权限的方便,可以将用户划分分配到任务组,然后对任务组授予权限,而不用一个个的对用户授权。默认的管理员组和用户组,普通就曾经可以满足使用了,默认都拥有全部权限。管理员组的SID对所有的任务组信息文件都相反,而用户组的SID对所有任务组信息文件都不同。所有用户都属于用户组。

 管理员拥有全部的权限,而用户的权限最好是来自于用户组而不是单独授权。为了安全,不应该让用户组拥有全部权限。

 对用户和组的管理,可以按如下步骤:

 启动Access,必须用管理员的帐号登录。

 打开要管理的数据库。