1. ACCESS不具备数据库的安全性管理。这题错哪
这句肯定错的。access是个桌面型数据库,不仅仅存储数据,还要管理数据。提到到管理肯定涉及到安全问题。数据安全是数据库使用必须考虑的重要因素,在满足使用要求的前提下,用户权限越少安全越有保障。下面介绍Access 2003提供的几个数据库安全管理措施:
1.查询权限设置
以查询数据库给予所有用户执行权限和禁止用户在查询过程中修改数据为例,设置数据库查询的属性应该在“设计视图”中打开它,单击工具栏上的“属性”按钮打开如图1所示“查询属性”对话框。打开“运行权限”下拉列表选择“所有者的”,此后所有用户都具有查询所有者的查看和执行查询的权限。这样查询所有者才能保存更改的查询,也只有查询所有者才能更改查询的所有权。如果需要禁止用户在查询过程中修改数据,可以打开“记录集”类型下拉列表,它提供了“动态集”、“动态集(不一致的更新)”和“快照”三个类型。选择“动态集”时查询的数据表中的值可以修改,而且会动态的改动相应的计算值。选择“快照”就不能修改数据表中的数据,因此你应该选择“快照”这一项。
2.用户权限设置
要使Access数据库用户拥有不同权限,即有的用户拥有编辑数据库的权限,有的用户只能查看数据库内容等等,设置方法是打开Access数据库,单击“工具”→“安全”子菜单下的“用户与组权限”命令打开对话框,其中可以修改不同用户对数据库或它的某个对象的访问权限。
如果需要想“用户组”的成员只能打开数据库的窗体,只要在“用户名/组名”中选择“用户组”,然后在对象类型下拉列表中选择“窗体”。接着在“对象名称”下面选择一个窗体,选中“权限”下的“打开/运行”以后“确定”,那么用户组的成员只能查看窗体,而不能执行其他操作了。
如果需要给予“管理员组”操作数据库的所有权限,只要在“用户名/组名”中选择“管理员组”,然后在对象类型下拉列表中选择“数据库”。接着选中“权限”下的“打开/运行”和“管理”,“确定”后即可使管理员组的成员操作数据库的所有权限。
3.用户组管理
为数据库用户建立组,然后给用户或组分配帐号可以大大提高管理效率,具体操作方法是:打开Access 2003(不用打开数据库),单击“工具”→“安全”子菜单下的“用户与组权限”命令打开如图2所示对话框。这个对话框包含三个选项卡:现有的组管理用户使用“用户”选项卡,单击“新建”按钮可以在“用户组”或“管理员组”中添加新用户,也可以单击“删除”按钮将组中的这个用户删除,单击“清除密码”就可以取消原来这个用户的密码。在“组成员关系”列表中,左面的是现在所有的组,右面的则是“名称”框内这个用户所在的组。
“组”选项卡的功能是管理组,打开“名称”下拉列表可以选择组,单击“新建”按钮可以添加“用户/组”,也可以单击“删除”按钮删除一个“用户/组”。
“更改登陆密码”选项卡仅供修改密码使用,当一个用户用初始密码登录Access以后,他可以在这里修改自己的访问密码。
4.使用安全机制向导
“设置安全机制向导”创建Access 2003数据库的非加密备份副本,并采取相应措施保护当前数据库。使用安全机制向导的具体操作步骤是:打开要保护的Access 2003数据库,单击“工具”→“安全”子菜单下的“设置安全机制向导”命令,既可打开“设置安全机制向导”对话框。
第一步选中“新建工作组信息文件”,该文件包含了开发或使用数据库的用户或组的名称;第二步指定工作组信息文件名称和工作组ID(WID),后者是4到20个字符组成的具有唯一性的字符串。接着选中对话框下面的“使这个文件成为所有数据库的默认工作组信息文件”或“创建快捷方式,打开设置了增强安全机制的数据库”;第三步在如图3所示对话框中选中要设置安全机制的数据库对象,设置时只须打开“表”、“查询”和“窗体”等选项卡,选中其中列出的数据库对象即可。第四步选中需要包含在工作组信息文件中的组;第五步选中如图4所示对话框中的“是,是要授予用户一些权限”,然后打开“数据库”、“表”和“查询”等选项卡,选中需要授予用户或组的权限;第六步需要向工作组信息文件添加用户,只须输入用户名和密码单击“将该用户添加到列表”即可;第七步在对话框的“组或用户名称”选择用户或组,然后根据需要选中“选择用户并将用户赋给组”或“选择组并将用户赋给该组”;单击“完成”按钮建立增强安全机制数据库需要的全部信息。
2. 为什么每次打开ACCESS数据库都会弹出"安全警告"的对话框呢
这是Office关于“不安全表达式”的安全警告,对普通用户而言,可以将它关闭,这样就不会遇到类似的提示问题了。
操作方法如下:启动Access,在“工具”菜单上指向“宏”,然后单击“安全性”,单击“安全级”选项卡,然后单击“低……”,单击“确定”按钮,重新启动Access即可。
3. 如何保证access
加密或解密数据库
最简单(也是安全性最低)的保护方法是对数据库进行加密。加密数据库就是将数据库文件压缩,从而使某些实用程序(如字处理器)不能解读这些文件。加密一个不具有安全设置的数据库并不能保证数据库的安全,因为任何人都可以打开数据库并完全访问数据库中的所有对象。有关对数据库进行安全设置的详细内容,请参阅本文后面的使用 Security Wizard 设置 Access 数据库的安全性。
加密可以避免在以电子方式传输数据库或者将其存储在软盘、磁带或光盘上时,其他用户偶然访问数据库中的信息。然而 Jet(Access 使用的数据库引擎)使用的加密方法非常薄弱,因此绝不能用于保护敏感数据。“加密/解密数据库”命令位于“工具”菜单的“安全”子菜单中。解密数据库是对加密过程的逆运算。
使用自定义界面
另一种相对简单的保护方案是使用自定义界面代替 Access 标准界面。与加密一样,它也不能保护数据库中的对象和敏感数据的安全。通过选择“工具”菜单中的“启动”选项,您可以指定自定义的启动窗体、菜单,甚至自定义的标题和图标。还可以选择取消 Database 窗口,从而对缺乏相应技术的应用程序用户隐藏这些对象。“启动”对话框的各项功能也可以通过编程实现。有关如何从“启动”对话框设置启动选项的详细信息,请参阅 Access 帮助中的“关于启动选项”。有关如何通过编程设置启动选项的详细信息,请参阅 Access 帮助 Microsoft Visual Basic® 编辑器的“设置‘启动’选项和编码中的选项”。
设置数据库密码
您可以在数据库上设置密码,从而要求用户在访问数据和数据库对象时输入密码。
注意:使用密码保护数据库或其中的对象的安全性也称为共享级安全性。
您不能使用此选项为用户或组分配权限,因此任何掌握密码的人都可以无限制地访问所有 Access 数据和数据库对象。“设置数据库密码”命令位于“工具”菜单的“安全”子菜单中。
用户级安全性
除共享级安全性外,您还可以使用用户级安全性,它提供了最严格的访问限制,使您能够最大限度地控制数据库及其中包含的对象。这是我们所推荐的数据库保护措施的一部分(当和操作系统提供的文件级和共享级安全性结合使用时),因此我们将在本文后面对用户级安全性做详细介绍。
同样,我们也将讨论用于保护数据库中包含的 Visual Basic for Applications (VBA) 代码的各种方法。
警告:用户级安全性(在单独使用时)主要用于保护数据库中的代码和对象,以免用户不小心进行了修改或更改。如果不希望用户非法访问窗体、报表或模块中的代码,则必须将 .mdb 文件转换为 MDE 文件(本文后面将详细介绍)。要避免用户修改数据库中的查询、宏或数据访问页,唯一的方法就是将数据库文件放在一个受保护的文件共享区域中。此外,在 Access 中不可能既允许用户修改表中的数据,同时又禁止其修改表的设计或删除表。要提供这样一种功能,需要使用一个基于服务器的数据库产品,例如 Microsoft SQL Server™。
设置模块密码
使用密码可以保护所有标准模块和类模块(例如窗体和报表中包含的代码)以免用户不小心修改或查看 VBA 代码。设置密码后,您只需在每次会话时输入一次密码,以便在 Visual Basic 编辑器中查看或修改代码。除查看和编辑外,在剪切、复制、粘贴、导出或删除任何模块时也都需要密码。但应该清楚的是,使用这种方法保护代码不能防止您或其他用户运行代码,也不能防止其他用户使用第三方实用程序(如 16 进制编辑器)来查看代码。要完全保护代码,必须将 .mdb 文件转换为 MDE 文件。
要为项目中的模块设置密码:
1.为该项目从 Visual Basic 编辑器的“工具”菜单中选择“属性”命令。
2.在“项目属性”对话框中,单击“保护”选项卡。
3.选中“查看时锁定工程”复选框并键入密码。
4.在“确认密码”框中,重新键入密码,然后单击“确定”。
使用 MDE 文件
通过将数据库文件转换为 MDE 文件,可以完全保护 Access 中的代码免受非法访问。将 .mdb 文件转换为 MDE 文件时,Access 将编译所有模块,删除所有可编辑的源代码,然后压缩目标数据库。原始的 .mdb 文件不会受到影响。新数据库中的 VBA 代码仍然能运行,但不能查看或编辑。数据库将继续正常工作,您仍然可以升级数据和运行报表。尤其是,将 Access 数据库保存为 MDE 文件可以防止以下操作:
• 在设计视图中查看、修改或创建窗体、报表或模块。
• 添加、删除或更改对对象库或数据库的引用。
• 使用 Access 或 VBA 对象模型的属性或方法更改代码 - MDE 文件不包含可编辑代码。
• 导入或导出窗体、报表或模块。而表、查询、数据访问页和宏可以导入非 MDE 数据库,或从中导出。
要将.mdb文件转换为 MDE 文件:
1.关闭数据库。
2.单击“工具”菜单中的“数据库实用工具”。
3.单击“生成 MDE 文件”。
4.在“保存数据库为 MDE”对话框中,找到 .mdb 文件,然后单击“生成 MDE”。
注意:在 Access 2002 中创建的数据库使用默认的 Access 2000 文件格式。Access 2000 文件格式的数据库只能在 Access 2000 中转换为 MDE 格式。要在 Access 2002 中将以默认的 Access 2000 格式创建的 .mdb 文件转换为 MDE 文件,必须先将文件转换为 Access 2002 文件格式。为此,可以首先以独占方式打开数据库(要以独占方式打开数据库,请参阅本文后面的手动设置数据库密码一节)。接下来,指向“工具”菜单中的“数据库实用工具”,指向“转换数据库”,然后单击“转为 Access 2002 文件格式”。数据库即可转换为 MDE 文件。
关于 Access 用户级安全性
Access 使用 Microsoft Jet 数据库引擎来存储和检索数据库中的对象。Jet 数据库引擎使用基于工作组的安全模型(也称为用户级安全性)来判断谁可以打开数据库,并保护数据库所包含对象的安全。无论是否明确设置了数据库的安全性,用户级安全性对所有 Access 数据库始终处于打开状态。您可以通过操纵用户和组帐户的权限和成员身份来更改 Access 中的默认安全级别。下面将对此进行介绍。
无论何时启动 Access,Jet 数据库引擎都要查找工作组信息文件(默认名称为 system.mdw,也可以使用扩展名 .mdw 任意命名)。工作组信息文件包含组和用户信息(包括密码),这些信息决定了谁可以打开数据库,以及他们对数据库中的对象的权限。对单个对象的权限存储在数据库中。这样,例如,就可以赋予一个组的用户(而不是其他用户)使用特定表的权限,而赋予另一个组查看报表的权限,但不能修改报表的设计。
工作组信息文件包括内置组(Admins 和 Users)以及一个通用用户帐户 (Admin),该帐户具有管理数据库及其包含的对象的权限(无限制)。您也可以使用菜单命令(“工具”菜单中的“安全”子菜单)或者通过 VBA 代码添加新的组和用户。
注意:安装 Access 时,安装程序会自动创建工作组信息文件,并使用您指定的名称和单位信息来命名。因为这一信息通常很容易被判断出来,因而未经授权的用户很可能会创建另一个版本的工作组信息文件,从而在由该工作组信息文件定义的工作组中,为自己设定一个不可撤消的管理员帐户(Admins 组的成员)权限。为防止发生这种情况,应创建一个新的工作组信息文件,并指定唯一的工作组 ID (WID)。这样,只有知道 WID 的用户才能创建该工作组信息文件的副本。本文后面将讨论使用 User-level Security Wizard 创建新的工作组信息文件。
Admins 组不能被删除,其成员具有不可撤消的管理权限。您可以通过菜单或代码删除 Admins 组的权限,但 Admins 组的任何成员都可以重新添加权限。此外,Admins 组中必须始终至少有一个管理数据库的成员。对于没有进行安全设置的数据库,Admins 组始终包含默认的 Admin 用户帐户,它也是所有用户默认登录的帐户。
所有用户必须属于默认的 Users 组,不管他们是否还属于其他组。您可以在 VBA 中创建用户帐户,而并不将新的用户帐户添加到 Admins 组中。然而,如果不同时将该用户帐户添加到 Admins 组中,该用户将无法成功启动 Access,因为 Access 内部使用的用于管理数据库的很多表都映射到 Users 组的权限。
使用以下步骤进行 Access 数据库的安全设置:
1.将新用户帐户添加到 Admins 组中。该用户对数据库中的对象具有管理权限。
2.从 Admins 组中删除默认的 Admin 用户帐户。
3.从 Admin 用户和 Users 组中删除权限。
4.为所创建的任何自定义组分配权限。
在默认 Admin 用户帐户上设置密码会激活登录对话框,从而每次启动 Access 时都会提示用户输入用户名和密码。如果您没有在 Admin 帐户上设置密码,用户将自动作为 Admin 用户登录,无需密码,也不会出现登录对话框。
对数据库中对象的权限可以是显式的(直接分配给用户帐户)或隐式的(从用户所属的组继承),也可以是两者的结合。Access 在权限问题上使用“最少限制”规则,即用户的权限包括其显式和隐式权限的总和。例如,如果用户 A 的帐户具有限制权限,而用户 A 属于一个具有限制权限的组,同时也属于另一个具有管理(所有)权限的组,那么用户 A 将具有管理权限。有鉴于此,通常最好不要为用户帐户分配显式权限。而应创建具有不同权限的组,然后将用户分配给具有适当权限的组,这会减少数据库管理方面的麻烦。
在以下各节中,我们将展示如何通过用户界面和编程手段来保护数据库及其包含的对象。首先,我们来看看几种设置数据库密码的不同方法。
手动设置数据库密码
可以为数据库设置密码,从而要求用户在访问数据库时输入密码。然而,一旦用户登录后,便可以不受限制地访问数据库中的数据和对象。
注意:在设置数据库密码之前,建议备份数据库并将其存储在一个安全的位置。
在设置数据库密码之前,需要以独占方式打开数据库。要以独占方式打开数据库:
1.如果数据库处于打开状态,关闭数据库。
2.单击“文件”菜单中的“打开”重新打开数据库。
3.在“打开”对话框中,找到数据库,单击“打开”按钮旁边的箭头,然后单击“以独占方式打开”。
要手动设置数据库密码:
1.在“工具”菜单中,指向“安全”,然后单击“设置数据库密码”。
2.在“密码”框中,键入密码。
注意:密码区分大小写。
3.在“验证”框中,重新键入密码以确认,然后单击“确定”。
现在就设置了数据库密码。下次或其他用户打开数据库时,会出现一个对话框要求输入密码。下面来看看如何通过编程设置数据库密码。
4. ASP网站的ACCESS数据库安全设置
假设你的空间物理路径为d:\web\abc\root,你的站点根目录放在abc目录下,名为wwwroot,数据库目录为abc目录下的databases文件夹,设置方法如下:
首先,我们打开conn.asp,找到DBPath = "/KS_Data/KesionCMS4.mdb" 'ACCESS数据库的文件名,请使用相对于网站根目录的的绝对路径
将它修改为DBPath = "d:/web/abc/root/databases/KS_Data/KesionCMS4.mdb" 'ACCESS数据库的文件名,请使用相对于网站根目录的的绝对路径
然后找到ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(DBPath)这一句,
将它改为ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBPath
如果需要采集,采用同样方法修改。
如果有以下文件,也需要修改
将/admin/KS.Database.asp文件中的“Server.MapPath(DBPath)”、“Server.MapPath(CollectDBPath)”、“Server.MapPath(strCurDir)”全部搜索出来并且分别替换为“DBPath”、“CollectDBPath”、“strCurDir”。这是后台"备份/压缩数据库"页面的数据库连接。
修改后保存文件,打开网站和后台试试看吧!
5. 如何增强网站数据库Access文件的安全性
??旧?娴囊?兀?还苁歉鋈擞没Щ故瞧笠涤没Ф挤浅R览低?臼?菘獾闹С郑?欢?芏啾鹩杏眯牡墓セ髡咭餐??浅!翱粗亍蓖?臼?菘狻
对于个人网站来说,受到建站条件的制约,Access数据库成了广大个人网站站长的首选。然而,Access数据库本身存在很多安全隐患,攻击者一旦找到数据库文件的存储路径和文件名,后缀名为“.mdb”的Access数据库文件就会被下载,网站中的许多重要信息会被一览无余,非常可怕。当然,大家采用了各种措施来加强Access数据库文件的安全,但真的有效吗?存在漏洞的保护措施
流传最为广泛的一种Access数据库文件保护措施,是将Access数据库文件的后缀名由“.mdb”改为“.asp”,接着再修改数据库连接文件(如conn.asp)中的数据库地址内容,这样一来即使别人知道数据库文件的文件名和存储位置,也无法进行下载。
这是网上最流行的一种增强Access数据库安全的方法,而且还有强大的“理论基础”。
因为“.mdb”文件不会被IIS服务器处理,而是直接将内容输出到Web浏览器,而“.asp”文件则要经过IIS服务器处理,Web浏览器显示的是处理结果,并不是ASP文件的内容。
但大家忽略了一个很重要的问题,这就是IIS服务器到底处理了ASP文档中的哪些内容。这里笔者提醒大家,只有ASP文件中“”标志符间的内容才会被IIS服务器处理,而其他内容则直接输出到用户的Web浏览器。你的数据库文件中包含这些特殊标志符吗?即使有,Access也可能会对文档中的“”标志符进行特殊处理,使之无效。因此后缀为“.asp”的数据库文件同样是不安全的,还是会被恶意下载。
面对蛊惑人心的理论,以及众人的附和,笔者也开始相信此方法的有效性。但事实胜于雄辩,一次无意间的试验,让笔者彻底揭穿了这个谣言。
笔者首先将一个名为“cpcw.mdb”的数据库文件改名为“cpcw.asp”,然后上传到网站服务器中。运行flashGet,进入“添加新的下载任务”对话框,在“网址”栏中输入“cpcw.asp”文件的存储路径,然后在“重命名”栏中输入“cpcw.mdb”。进行下载后,笔者发现可以很顺利地打开“cpcw.mdb”,而且它所存储的信息也被一览无余。这就充分说明了单纯地将数据库文件名的后缀“.mdb”改为“.asp”,还是存在安全隐患。
没有最“安全”,只有更“安全”
任何事情都不是绝对的,因此增强Access数据库文件的安全也只是相对的。毕竟Access只能用于小型数据库的解决方案,它存在很多先天不足,特别是在安全方面。
数据库文件名应复杂
要下载Access数据库文件,首先必须知道该数据库文件的存储路径和文件名。如果你将原本非常简单的数据库文件名修改得更加复杂,这样那些“不怀好意”者就要花费更多的时间去猜测数据库文件名,无形中增强了Access数据库的安全性。
很多ASP程序为方便用户使用,它的数据库文件通常都被命名为“data.mdb”,这大大方便了有经验的攻击者。如果我们将数据库文件名修改得复杂一些,他人就不易猜到,如将“data.mdb”修改为“1rtj0ma27xi.mdb”,然后修改数据库连接文件中的相应信息。这样Access数据库就相对安全一些。此方法适合于那些租用Web空间的用户使用。
不足之处:一旦查看到数据库连接文件(如conn.asp)中的内容,再复杂的文件名也无济于事。
6. access数据库的功能,应用安全性如何
性能还好,安装比较普遍,一般装OFFICE的机器都有装ACCESS
做为单机版的数据库,用用还好。
不过,没啥安全性可言,破解ACCESS数据库密码的工具还是比较多的