九法防止ACCESS数据库被下载的

来源: 作者:powers.com.cn yinhu 2006-02-27 出处:pcdog.com

.net  access数据库  windows 2000  windows xp  安全  
上一页 1 2 3 下一页 

  1.3 放开权限后继续实验,

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

"/test"应用程序中的服务器错误。
------------------------------------------
不能锁定文件。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误 以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OleDb.OleDbException: 不能锁定文件。



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



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

我们进一步放开权限,
a) D:\wwwroot\test\data\ 文件夹给用户ASPNET以 如下权限:
允许 拒绝
完全控制 &n bsp; □ □
修改 □ □
读取及运行 √ □ ;
列出文件夹目录 ; √ □
读取 √ □
写入 √ □

b) D:\wwwroot\test\data\db1.mdb 文件本身给用户ASPNET以如下权限:
√ 允许将来自父系的可继承权限传播给该 对象





1.4 继续实验,发现错误已解决,那么上面这个权限就是我们需要放开的"最低权限"。

(a) 如果 db1.mdb 是 Access 2000 创 建的数据库,我们会发现一个小问题:生成的 *.ldb 文件不会自己删除,访问后该文件依然存在,但这个 问题不会影响 ASP.NET 的正常运行。



(b) 如果 db1.mdb 是 Access XP 创建的 数据库,没有出现上面类似问题。



(c) 原因初步分析:我们仅仅是给了 ASPNET 以写入文件夹的权限,没有给它修改的权限 ,所以文件一旦写入,便无法修改其内容,*.ldb 也就删除不掉了。



如果非要解决这个问题,进一步放开权限为:
a) D:\wwwroot\test\data\ 文件夹给用户ASPNET以 如下权限:
允许 拒绝
完全控制 &n bsp; □ □
修改 √ □
读取及运行 √ □ ;
列出文件夹目录 ; √ □
读取 √ □
写入 √ □

b) D:\wwwroot\test\data\db1.mdb 文件本身给用户ASPNET以如下权限:
√ 允许将来自父系的可继承权限传播给该 对象
更多内容请看PCdog.com--数据库相关文章专题
上一页 1 2 3 下一页 
上一篇:在VB中用代码打印ACCESS报表
下一篇:如何给ODBC连接打开连接池