如何配置 Jet 4.0 以防止在 Access 2000 和 Access 2002 中运行不安全的函数

文章翻译 文章翻译
文章编号: 239482 - 查看本文应用于的产品
本文只适用于 Microsoft Access 数据库 (.mdb)。

中等: 要求基本的宏、 编码,和互操作技能。
为这篇文章的一个 Microsoft Office Access 2003 版本,请参阅 294698

重要本文包含有关修改注册表的信息。 在修改注册表之前,请务必对其进行备份,并确保您了解如何还原注册表发生问题。有关如何备份、 还原,和编辑注册表单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986在 Microsoft Windows 注册表的说明
展开全部 | 关闭全部

本文内容

概要

Microsoft Jet 4.0 数据库引擎允许您通过 Microsoft Jet 表达式服务的应用程序函数的调用不安全的 Microsoft Visual Basic。若要计算表达式在窗体、 报表,以及在查询中使用 Jet 表达式服务。

例如对于下面的 SQL 语句可能会导致所有的文件将被从您的计算机上的当前文件夹中删除: 在此示例中的
SELECT Shell("Cmd /c del *.*") As c1 From Customers
笔记 的外壳命令的工作在 Microsoft Windows NT。 您必须修改命令,如下所示为命令来运行 Microsoft Windows 95 或 Microsoft Windows 98 的计算机上正常工作:
SELECT Shell("Command.com /c del *.*") As c1 From Customers
的表达式包含 Visual Basic,为应用程序命令,可以执行损坏运行该查询如 Shell 命令删除文件或格式化计算机的计算机时,会发生的安全风险。

本任务中

简介

表达式的计算结果是一个需要在许多情况下的行为。但是,如果表达式的一部分中包含一个外壳程序命令外壳程序命令分析,然后在该计算机上执行。

使用沙盒模式可以阻止这样的操作。但是,Jet 4.0 沙盒模式的默认值是不启用沙盒模式,在 Microsoft Access 运行的查询。为所有其他非-Access 应用程序,such as 开放式数据库连接(ODBC) (ODBC) 启用沙盒模式。

了解如何启用或禁用沙盒模式的方法

警告如果注册表编辑器使用不当,您可能会导致严重的问题,可能会要求您重新安装操作系统。Microsoft 不能保证可以解决问题所产生的错误地使用注册表编辑器。使用注册表编辑器需要您自担风险。

您可以启用沙盒模式为非 Access 应用程序。要这样做,您必须安装 Microsoft Jet 4.0 Service Pack 3 (SP3) 或更高版本。安装此更新后,Jet 运行一个新的注册表项的下一次将添加到注册表中。此新的注册表项可以防止这种类型的可能的安全风险。下面是添加该注册表项:

\\HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\4.0\engines\SandboxMode


有关如何获取最新的 Jet 4.0 服务包的其他信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
239114如何获取最新的 service pack,对于 Microsoft Jet 4.0 数据库引擎
若要使系统更抵抗恶意的攻击,并在同一时间使较旧的应用程序以继续运行沙盒模式的操作更改在 Jet 4.0 服务包 8 因此该沙盒模式是完全由您控制。

您可以将项设置下面的值与 0 (零) 表示最 permissive 和正在最 permissive 的 3:

收起该表格展开该表格
设置说明
0在所有时间禁用沙盒模式。
1为访问的应用程序,但应用不为非-访问程序使用沙盒模式。
2为不可访问的应用程序而不是访问应用程序使用沙盒模式。这是默认值。
3在任何时候使用沙盒模式。

启用沙盒模式,然后您试图在 Jet 4.0 查询中的应用程序函数的使用不安全的 Visual Basic 后,您会收到以下错误消息:

未定义的函数 functionname 表达式中

实现沙盒模式下操作

Jet 4.0 服务中如何实施沙盒模式扩展到与 Access 数据库更兼容包 8。沙盒模式的上一个实现了大多数 Access 应用程序的限制过于严格。从 Jet 4.0 服务包 8 开始增强的沙盒模式将继续阻止不安全的应用程序功能的 Visual Basic,但是 Jet 4.0 服务包 8 现在允许用户定义的函数的执行。

使用沙盒模式下操作与 Jet 4.0 Service Pack 3 及更高版本

启用沙盒模式时,您可以在 Jet 查询中使用下面的列表的函数。不会出现在列表中的任何函数不是在沙盒模式下可用的。
收起该表格展开该表格
复数数组ASCASCB ASCWATN
CBOOLCBYTECCURCDATE CDBL选择
CHRCHR $CHRBCHRB $ CHRWCHRW $
CINTCLNG余弦CSNG CSTRCVAR
CvDateCVErr日期日期 $ DATEADDdateDiff
日期部分DATESERIALDATEVALUE 一天DDB错误
错误 $开支修复程序格式 格式 $fv
十六进制十六进制 $小时IIF IMEStatus指令
INTIPMTIRRisDate isEmptyISERROR
isNullisNumericisObject lCaselCase $
左的 $LEFTBLEFTB $LEN LENB日志
lTrimlTrim $中等中等 $ MIDBMIDB $
分钟MIRR现在 NPERNPV
octoct $分区PMT PPMTPV
QBColor速率RGB向右 右 $RIGHTB
RIGHTB $rnd舍入rTrim rTrim $第二个
sgnSINSLN空间 空间 $平方
strstr $strCompstrConv 字符串字符串 $
切换SYD正切值时间 时间 $计时器
timeSerialTIMEVALUE剪裁 修剪 $typeNameuCase
uCase $valvarType 工作日一年

了解 Visual Basic 会导致出现错误时使用 Jet 4.0 服务包 8 时,从 Jet 查询或 Access 属性调用的应用程序功能

在 Jet 查询中的表达式中或从 Access 属性调用该函数时,以下的 Visual Basic,为应用程序功能将会导致错误:
收起该表格展开该表格
AppActivate发嘟嘟声日历CallByNameChDir
ChDrive命令命令 $CreateObjectCurDir
CurDir $DeleteSettingDoEvents环境环境 $
EOF错误FileAttrFileCopyFileDateTime
调用 FileLenFreeFileGetAllSettingsGetAttrGetObject
GetSetting输入输入的 $InputBInputB $
终止负载LocLOF随机排列
重置SaveSetting查找SendKeysSetAttr
外壳程序Spc选项卡卸载用户窗体
宽度

属性

文章编号: 239482 - 最后修改: 2004年8月10日 - 修订: 6.0
这篇文章中的信息适用于:
  • Microsoft Access 2000 标准版
  • Microsoft Access 2002 标准版
  • Microsoft Open Database Connectivity Driver for Access 4.0
  • Microsoft Office 2000 中文专业版
关键字:?
kbmt kbhowto kbconfig kbinfo kbfix KB239482 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 239482
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com