如何設定 Jet 4.0 來防止不安全函數在 Access 2000 以及 Access 2002 中執行

文章翻譯 文章翻譯
文章編號: 239482 - 檢視此文章適用的產品。
本文只適用於 Microsoft Access 資料庫 (.mdb)。

中級使用者: 需要基本巨集]、 [程式碼撰寫,] 以及 [交互操作性技巧。
本文章的有 Microsoft Office Access 2003] 版本請參閱 294698

重要本文包含修改登錄的相關資訊。 修改登錄之前請確定它備份起來,並請確定您瞭解如何在發生問題時還原登錄。如如何備份、 還原,以及編輯登錄有關,按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項:
256986Microsoft 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,例如開放式資料庫連接 (ODBC)。

了解如何啟用或停用沙箱模式的方式

警告如果您未正確使用登錄編輯程式可能會導致嚴重的問題,可能必須重新安裝作業系統。Microsoft 不保證您可以解決因不當使用 「 登錄編輯器 」 的問題。使用 「 登錄編輯程式 」,請自行負擔相關的風險。

您可以啟用沙箱模式的非存取應用程式。若要執行此動作,您必須安裝 Microsoft Jet 4.0 Service Pack 3 (SP3) 或更新版本。安裝這個更新之後,下次您執行 Jet 新的登錄機碼被加至登錄。這個新的登錄機碼可以避免這種可能的安全性風險。以下是會加入登錄機碼:

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


如需有關如何取得最新的 Jet 4.0 Service Pack 的詳細資訊,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
239114如何取得最新的 Service Pack 的 Microsoft Jet 4.0 資料庫引擎
讓您更能抵抗惡意攻擊的系統並在同一時間讓它的較舊的應用程式繼續執行可能,沙箱模式的作業中變更 Jet 4.0 服務套件 8 因此該沙箱模式是完全在您的控制之下。

您可以將機碼設定為下列值與正在最寬鬆的 0 (零) 和被最寬鬆的 3:

摺疊此表格展開此表格
設定描述
0沙箱模式會停用在所有的時間。
1沙箱模式會用為存取應用程式,但應用不為非-存取程式。
2沙箱模式可用於非 Access 應用程式而不是用於存取應用程式。這是預設值。
3在任何時候使用沙箱模式。

啟用沙箱模式,然後在您嘗試使用不安全的 Visual Basic 的 Jet 4.0 在查詢中的應用程式函式之後,您會收到下列錯誤訊息:

未定義的函式 'functionname' 運算式中

實作沙箱模式下作業

您可以如何來實作沙箱模式擴充 Jet 4.0 服務 」 中可與 Access 資料庫中更相容的封包 8。沙箱模式的前一個實作已對大部分的 Access 應用程式而言太嚴格。開始 Jet 4.0 服務套件 8 增強的沙箱模式會持續封鎖不安全的 Visual Basic 應用程式函式,但是 Jet 4.0 服務套件 8 現在允許使用者定義函式的執行。

使用沙箱模式下作業 Jet 4.0 Service Pack 3 及更新版本

啟用沙箱模式時,您可以使用下列清單的函式在 Jet 查詢中。沒有可用在沙箱模式中不會出現在清單中的任何函式。
摺疊此表格展開此表格
完全陣列遞增ASCB ASCWATN
CBOOLCBYTECCURCDATE CDBL選擇
台尺 (台灣)台尺 (台灣) $CHRBCHRB $ CHRWCHRW $
CINTCLNGCOSCSNG CSTRCVAR
CvDateCVErr日期日期 $ DATEADDdateDiff
日期部份DATESERIALDATEVALUE 一天DDB錯誤
錯誤 $期望修正程式格式 格式 $fv
十六進位十六進位 $小時IIF IMEStatusinStr
INTIPMTIRRisDate isEmptyISERROR
isNullisNumericisObject lCaselCase $
左的 $LEFTBLEFTB $長度 LENB記錄檔
lTrimlTrim $美中中型 $ MIDBMIDB $
分鐘MIRR月份現在 NPERNPV
octoct $磁碟分割PMT PPMTPV
QBColor速率RGB 右 $RIGHTB
RIGHTB $rnd圓形rTrim rTrim $第二個
sgnSINSLN空間 空間 $sqr
strstr $strCompstrConv 字串字串 $
切換SYD日光浴時間 時間 $計時器
timeSerialTIMEVALUE修剪 修剪 $typeNameuCase
uCase $varType 非周末年份

瞭解 Visual Basic 會造成錯誤時使用 Jet 4.0 服務套件 8 時,Jet 查詢或可存取屬性從呼叫的應用程式函式

下列 Visual Basic 應用程式函式的函式呼叫從在 Jet 查詢運算式或可存取屬性時,便會發生錯誤:
摺疊此表格展開此表格
AppActivate嗶聲行事曆CallByNameChDir
ChDrive命令命令 $CreateObjectCurDir
CurDir $DeleteSettingDoEvents環境環境 $
EOF錯誤FileAttrFileCopyFileDateTime
FileLenFreeFileGetAllSettingsGetAttrGetObject
GetSetting輸入輸入的 $InputBInputB $
殺了負載LocLOF隨機設定
重設SaveSetting搜尋SendKeys 巨集SetAttr
殼層Spc索引標籤卸載自訂表單
寬度

屬性

文章編號: 239482 - 上次校閱: 2004年8月10日 - 版次: 6.0
這篇文章中的資訊適用於:
  • Microsoft Access 2000 Standard Edition
  • Microsoft Access 2002 Standard Edition
  • Microsoft Open Database Connectivity Driver for Access 4.0
  • Microsoft Office 2000 Professional Edition
關鍵字:?
kbmt kbhowto kbconfig kbinfo kbfix KB239482 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本: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