手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Access>列表

如何防止ACCESS数据库被下载

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

  我们在IIS属性---主目录---配置---映射---应用程序扩展那里添加.mdb文件的应用解析。注意这里的选择的DLL(或EXE等)似乎也不是任意的,选择不当,这个MDB文件还是可以被下载的,注意最好不要选择选择asp.dll等。你可以自己多测试下,修改后下载数据库,就出现(404或500等错误)。

  8.使用.net的优越性 @com

  动网的木鸟就写过一个防非法下载文件的"WBAL防盗链工具"。

  不过那个只实现了防止非本地下载的,没有起到真正的防下载数据库的功能。不过这个方法已经跟5法差不多可以通过修改.NET文件,实现本地也不能下载! 中国站.长.站

  这几个方法中,只有第7和8个是统一性改的,一次修改配置后,整个站点的数据库都可以防止下载,其他几个就要分别修改数据库名和连接文件,比较麻烦,不过对于虚拟主机的朋友也只能这样了! Www__com

  其实第6个方法应该是第5个方法的扩展,可以实现特殊的功能,但对于不支持.net的主机或者怕设置麻烦的话,还是直接用第5个方法了,而且默认情况下第6个方法,依然可以通过复制连接到同主机的论坛或留言本发表,然后就可以点击下载了。(因为这样的引用页是来自同主机的) ~com

  9.利用NTFS分区的文件权限设置(bypercyboy) 中.国站长站

  我们已经知道,ASP.NET中使用ADO.NET访问数据库,通过OleDb的连接可以访问Access数据库——我们非常常用的低端数据库之一。本文讨论了ASP.NET中可能看到的若干错误提示,从中看到Access2000和AccessXP创建的数据库文件,在访问出现错误时会出现不太相同的错误提示。希望对大家有所帮助。另一个要点是,希望通过此文,使大家对ASP.NET中Access数据库文件的NTFS权限设置有所新的认识。 Www__com

  (一)实验过程 中.国站长站

  为了叙述方便,举个具体例子做个实验:应用程序为/test,数据库存放在D:\wwwroot\test\data\db1.mdb,我们已经知道在ASP.NET中是以一个叫做ASPNET虚拟用户的身份访问数据库的,我们需要给这个账户以特定的NTFS权限才能使ASP.NET程序正常运行。 Www~~com

  为了得到最严格的NTFS权限设置,实验开始时我们给程序最低的NTFS权限: _com

  a)D:\wwwroot\test\data\文件夹的给用户ASPNET以如下权限: 中国.站长站

允许 拒绝 完全控制 &n bsp; □ □ 修改 &nbs p; &nbs p;□ □ 读取及运行 √ □ ; 列出文件夹目录 ; √ □ 读取 &nbs p; &nbs p;√ □ 写入 &nbs p; &nbs p;□ □

  b) D:\wwwroot\test\data\db1.mdb文件本身给用户ASPNET以如下权限: Www@@com

  √允许将来自父系的可继承权限传播给该对象

  1.1对于某个只包含有"SELECT"命令的aspx程序,上述权限设置运行时无障碍,即:上述权限已经满足这类程序的运行了。 中.国.站.长.站

  1.2对于包含有"UPDATE""INSERT""UPDATE"等命令的aspx程序。 ~com

  (a)如果db1.mdb是Access2000创建的数据库,出现如下错误:

"/test"应用程序中的服务器错误。

  MicrosoftJet数据库引擎打不开文件'D:\wwwroot\test\data\'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。 站长.站

  说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

  异常详细信息:System.Data.OleDb.OleDbException:MicrosoftJet数据库引擎打不开文件'D:\wwwroot\test\data\'。它已经被别的用户以独占方式打开,或没有查看数据的权限。 中.国.站长站

  (b)如果db1.mdb是AccessXP创建的数据库,出现如下错误: "/test"应用程序中的服务器错误。 [中国站长站]

  操作必须使用一个可更新的查询。 中.国.站.长.站

  说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 Www__com

  异常详细信息:System.Data.OleDb.OleDbException:操作必须使用一个可更新的查询。 _com

  (c)原因初步分析:因为包含有"UPDATE""INSERT""UPDATE"等命令,需要对数据库文件本身进行写入操作,所以上述权限不能满足此需求,我们需要进一步放开权限。 _com

  我们放开一些权限, 中.国站长站

  a) D:\wwwroot\test\data\ 文件夹不变; 站长.站

  b) D:\wwwroot\test\data\db1.mdb 文件本身给用户ASPNET以如下权限; _com

允许 拒绝 完全控制 &n bsp; □ □ 修改 &nbs p; &nbs p;□ □ 读取及运行 √ □ ; 列出文件夹目录 ; √ □ 读取 &nbs p; &nbs p;√ □ 写入 &nbs p; &nbs p;√ □  1.3 放开权限后继续实验 ~com

  (a)如果db1.mdb是Access2000创建的数据库,出现如下错误: "/test"应用程序中的服务器错误。 Www^^com

  不能锁定文件。

  说明:执行当前Web请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 Www__com

  异常详细信息:System.Data.OleDb.OleDbException:不能锁定文件。 ^com

  (b)如果db1.mdb是AccessXP创建的数据库,没有出现错误。

  (c)原因初步分析:我们发现在打开Access数据库时,同时会在所在目录生成一个同名的*.ldb文件,这是一个Access的锁定标记。鉴于此,我们猜测,用户ASPNET访问Access数据库时,也需要生成一个锁定标记,而该目录没有允许其写入,因此出错。至于AccessXP创建的数据库为什么没有这个错误,原因还不得而知。 Www..com

  我们进一步放开权限, 站.长站

  a)D:\wwwroot\test\data\文件夹给用户ASPNET以如下权限: 中.国.站长站

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!