为了数据库的对象不被他人偷窥,Access设置一道锁:数据库密码,这样可以在打开数据库之前必须输入和验证密码才能察看数据库中的对象,从而保证了一定的安全性,但是这样还不够,数据库密码很容易被破解,为了进一步提高安全性,Access还提供加密措施。
对于个人来说,这样安全措施可能已经够了,可是对于一个企业来说,这还不够。比如说,企业的财务数据库,它由不同的人操作不同的数据库管理功能,不能越权使用,出纳只能做出纳的事,会计只能做会计的事,如果某个人什么事都可以做的话,那么,这个人就可以做假账,数据库中的数据就失去了真实性。
为此,Access设置了工作组级安全,即要求不同身份的用户用不同的用户名称密码进行登录,由工作组管理员来分配各用户对数据库对象的操作权限,这样就保证了数据库用户各负其责不能越权。
一般情况下,工作组权限设置是通过Access的菜单功能来实现的,除此之外,我们还可以通过运行JET SQL的安全管理语句来实现,如用户管理、授权管理语句。
工作组级安全保护的是数据库中的数据安全。但是,Access数据库是一个复合文件,它除了把数据放在文件中,还把其它对象也放在文件,包括窗体、报表、宏、VBA模块和类模块。作为数据库开发人员并不希望自己的劳动成果公之于众,尤其是VBA程序代码,Access则在VBE(VBA开发环境)允许开发人员对工程设置保护密码,这样一来,就不是什么人都可以察看VBA代码了,直到保护代码的作用。为了提高VBA的运行效率,Access还允许对VBA进行编译,这样一来更加提高了VBA的保密性,因为编译后的数据库中已经不存在VBA源代码了,而是一般人看不懂的P-Code。