Artikel-ID: 239104 - Geändert am: Mittwoch, 2. Juni 2004 - Version: 4.0

Jet-Ausdruck kann unsichere Visual Basic für Applikationen-Funktionen ausführen

Dieser Artikel wurde zuvor veröffentlicht unter D239104
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
239104  (http://support.microsoft.com/kb/239104/en-us/ ) Jet Expression Can Execute Unsafe Visual Basic for Applications Functions
Moderat: Erfordert grundlegende Kenntnisse in den Bereichen Makros, Kodierung und Interoperabilität.

Auf dieser Seite

Alles erweitern | Alles schließen

Problembeschreibung

Über Jet 3.5x kann ein Benutzer unsichere Visual Basic für Applikationen-Funktionen in Abfrageanweisungen von allen Jet-Anwendungsarten (wie ODBC oder Access) aufrufen. Beispielsweise würde die folgende Anweisung dazu führen, dass alle Dateien aus dem aktuellen Ordner eines Computers gelöscht werden:

SELECT Shell("Cmd /c del *.*") As c1 From Customers
Hinweis: Der Shell-Befehl in diesem Beispiel funktioniert unter Microsoft Windows NT. Damit der Befehl auf einem Computer mit Microsoft Windows 95/98 funktioniert, müsste er folgendermaßen geändert werden:
SELECT Shell("Command.com /c del *.*") As c1 From Customers
Das Sicherheitsrisiko tritt auf, wenn Ausdrücke VBA-Befehle enthalten, die für den Computer, der die Abfrage ausführt, schädlich sein können, zum Beispiel Shell-Befehle zum Löschen von Dateien oder zum Formatieren des Computers.

Ursache

Jet-Abfragen können VBA-Ausdrücke enthalten. Diese werden während der Abfrageausführung ausgewertet, ein Verhalten, das in vielen Fällen sinnvoll ist. Wenn jedoch Teile der Abfrage den Shell-Befehl enthalten, wird dieser analysiert und auf dem Computer ausgeführt.

Sie können solche Operationen über den so genannten "Sandbox-Modus" blockieren. Der Sandbox-Modus ist jedoch in Microsoft Jet 3.5x standardmäßig nicht für Anwendungen aktiviert, die VBA-Befehle ausgeben können.

Lösung

Sie müssen zunächst das Microsoft Jet 3.5 SP3-Update installieren, um den Sandbox-Modus aktivieren zu können. Nach der Installation dieses Updates wird bei der nächsten Ausführung von Jet ein neuer Registrierungsschlüssel zu der Registrierung hinzugefügt. Über diesen neuen Registrierungsschlüssel können Sie diese Art von Sicherheitsrisiko ausschalten. Der folgende Registrierungsschlüssel wird hinzugefügt:
   \\HKEY_LOCAL_MACHINE\Software\Microsoft\Jet\3.5\engines\SandboxMode
Weitere Informationen dazu, wie Sie das SP3-Update Microsoft Jet 3.5 erhalten können, finden Sie in folgendem Artikel der Microsoft Knowledge Base:
172733  (http://support.microsoft.com/kb/172733/DE/ ) Updated Version of Microsoft Jet 3.5 Available on MSL
In dem Jet-Update wurde die Operation des Sandbox-Modus so geändert, dass Sie die volle Kontrolle über den Modus haben, um Ihr System besser vor böswilligen Angriffen zu schützen und gleichzeitig weiterhin die Ausführung älterer Anwendungen zu ermöglichen.

Sie können den Schlüssel auf die folgenden Werte setzen, wobei 0 (null) der am wenigsten und 3 der am meisten einschränkende Wert ist:

Tabelle minimierenTabelle vergrößern
EinstellungBeschreibung
0 Sandbox-Modus ist immer deaktiviert.
1 Sandbox-Modus gilt für Access-Anwendungen, nicht jedoch für Nicht-Access-Anwendungen.
2 Sandbox-Modus gilt für Nicht-Access-Anwendungen, nicht jedoch für Access-Anwendungen. (Dies ist der Standardwert.)
3 Sandbox-Modus ist immer aktiviert.

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.

Weitere Informationen

Wenn der Sandbox-Modus aktiviert ist, und Sie versuchen, VBA-Funktionen in einer Jet-Abfrage zu verwenden, die als nicht sicher erachtet werden, wird die folgende Fehlermeldung angezeigt:
JET_errExprUnknownFunction

Zulässige Operationen bei aktiviertem Sandbox-Modus

Die folgende Liste enthält Funktionen, die Sie in Jet-Abfragen verwenden können, wenn der Sandbox-Modus aktiviert ist. Funktionen, die nicht in dieser Liste aufgeführt sind, sind bei aktiviertem Sandbox-Modus nicht verfügbar.

Tabelle minimierenTabelle vergrößern
ABS array ASC ASCB ASCW ATN
CBOOL CBYTE CCUR CDATE CDBL choose
CHR CHR$ CHRB CHRB$ CHRW CHRW$
CINT CLNG COS CSNG CSTR CVAR
CvDate CVErr date DATE$ DATEADD dateDiff
datePart DATESERIAL DATEVALUE day DDB error
error$ EXP fix format format$ fv
hex hex$ HOUR IIF IMEStatus inStr
INT IPMT IRR isDate isEmpty ISERROR
isNull isNumeric isObject lCase lCase$ LEFT
LEFT$ LEFTB LEFTB$ LEN LENB LOG
lTrim lTrim$ MID MID$ MIDB MIDB$
MINUTE MIRR MONTH NOW NPER NPV
oct oct$ partition PMT PPMT PV
QBColor RATE RGB RIGHT RIGHT$ RIGHTB
RIGHTB$ rnd round rTrim rTrim$ SECOND
sgn SIN SLN space space$ sqr
str str$ strComp strConv string string$
switch SYD TAN TIME TIME$ timer
timeSerial TIMEVALUE TRIM TRIM$ typeName uCase
uCase$ val varType WEEKDAY YEAR


Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Open Database Connectivity Driver for Access 3.5
  • Microsoft Access 95 Standard Edition
  • Microsoft Access 97 Standard Edition
  • Microsoft Office 97 Professional Edition
Keywords: 
kbbug kbdta kbpending KB239104
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Retired KB ArticleDisclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.
 

SPRACHE AUSWÄHLEN