Otwórz bazę danych Access z wyłączonymi skryptami (makra i VBA)

0

Załóżmy, że chcesz sprawdzić zawartość niezaufanej bazy danych Access.

Wygląda na to, że powinien istnieć sposób na otwarcie go w programie Access z wyłączonymi makrami i VBA.

Szukając w Internecie, znalazłem kilka opcji, które nie są do końca właściwe:

  • Przytrzymaj klawisz Shift, aby wyłączyć dowolne makro Autoexec lub formularz startowy. Nie dobrze, bo (niewiarygodnie) można go ominąć .
  • Ustaw poziom zabezpieczeń makr na Średni. Jedyne opcje, które daje, to Anuluj i Otwórz. Nie ma „otwartych za pomocą skryptów wyłączonych”.
  • "Tryb piaskownicy" tj. „blokuj niebezpieczne wyrażenia”. Nie dobrze, większość skryptów nadal działa.
  • Artykuł KB Jak wyłączyć Visual Basic for Applications podczas wdrażania pakietu Office 2003 lub Office XP daje 5 opcji, które są tylko odmianami dwóch metod:
    • odinstaluj (lub nie instaluj) VBA. Zbyt drastyczne. Nadal chcę zbadać kod, który chciałbym uruchomić lub nie.
    • Ustaw wartość rejestru „VBAOff”, równoważnie za pomocą dowolnej zasady lub regedit. Działa to dla wszystkich aplikacji pakietu Office z wyjątkiem Access!

Czy ktoś ma jakieś inne pomysły? Używam programu Access 2003.

Hugh Allen
źródło
Jeśli naprawdę nie ufasz temu, jak otworzyć go na maszynie wirtualnej i po prostu wycofać migawkę, jeśli coś złamie?
cularis
@cularis: maszyna wirtualna działa, ale jest trochę kłopotliwa. Wygląda na to, że powinien istnieć sposób na zrobienie tego, o co proszę.
Hugh Allen
Co w nim chcesz sprawdzić? Jeśli to tylko tabele danych, utwórz nową pustą bazę danych, a następnie połącz się z tabelami w innej bazie danych. Będzie to całkowicie bezpieczne. Jeśli potrzebujesz spojrzeć na kod, to jest inny problem. Czego dokładnie się boisz?
David W. Fenton
Czy zdajesz sobie sprawę z tego, że możesz ponownie włączyć DisableBypassKey bez otwierania bazy danych w interfejsie dostępu?
David W. Fenton
@ David W. Fenton: (masz na myśli AllowBypassKey) to dobry pomysł, o którym nie pomyślałem. Mimo to wymaga wysiłku :(
Hugh Allen

Odpowiedzi:

0

Możesz połączyć się z tabelami z jednej instancji Dostępu do innej. W ten sposób możesz kontrolować środowisko wyświetlania, a tym samym być pewnym, że będą uruchamiane tylko formularze i makra, które chcesz uruchomić.

Na przykład utwórz nową pustą bazę danych. Nazwij to jak DB1.mdb. Następnie wybierz tabele | Nowe | Link .., a następnie wskaż bazę danych i tabelę, którą chcesz bezpiecznie wyświetlić. Powtórz to dla każdej tabeli, do której chcesz uzyskać dostęp. Po utworzeniu linków do tabel możesz tworzyć zapytania, formularze i raporty na tych tabelach bez ryzyka uruchomienia jakichkolwiek niepożądanych makr.

Bardziej wydajnie, ale także z większą ilością możliwości technicznych z twojej strony, możesz także przeciągać i upuszczać zapytania, formularze, raporty i wizualne podstawowe i makra z DB1.mdb do DB2.mdb. Zanim je uruchomisz, możesz je sprawdzić, aby upewnić się, co zrobią lub czego nie zrobią. Na przykład, możesz je otworzyć i usunąć wszelkie makra, na przykład, jeśli naprawdę z jakiegoś powodu byłeś bardzo niedbały. -- Twoje zdrowie

Elliptical view
źródło