Chraňte svou databázi Access heslem. Připojení k databázi Microsoft Access

Abyste zabránili neoprávněnému použití vaší databáze Accessu, můžete ji zašifrovat heslem. Poté můžete databázi dešifrovat a smazat heslo pouze jeho zadáním. Tento článek popisuje, jak zašifrovat databázi heslem a také ji dešifrovat a odstranit z ní heslo.

V dřívějších verzích Accessu můžete vytvářet uživatelské účty a hesla pomocí pojmenované funkce zabezpečení na úrovni uživatele. Tato část pojednává o zabezpečení na uživatelské úrovni, které není podporováno při použití formátu ACCDB.

Šifrovanou databázi, pro kterou je heslo ztraceno, nelze použít. Pokud je heslo neznámé, nelze jej smazat.

V tomto článku

Recenze

Pomocí šifrovacího nástroje můžete zabránit čtení databáze jinými prostředky a chránit ji heslem. V tomto případě si musíte pamatovat následující pravidla.

    Nová funkce šifrování se vztahuje pouze na databáze ve formátu ACCDB.

    Tento nástroj používá silnější šifrovací algoritmus než předchozí verze Accessu.

    Když zašifrujete databáze vytvořené v dřívějších verzích Accessu (soubory MDB) nebo na ně použijete hesla, použijí se odpovídající funkce z Accessu 2003.

Šifrování databáze heslem

Toto téma popisuje, jak vytvořit heslo a použít ho pro počítačovou databázi Accessu.

Šifrování databáze

Šifrování rozdělené databáze

Chcete-li zašifrovat rozdělenou databázi, musí být tento postup proveden na front-endu i back-endu. Šifrování databáze serveru změní vztahy s jejími tabulkami.

Otevření a dešifrování databáze

Připomínka. Heslo si zapamatujte. Zapomenuté heslo nelze obnovit.

"Bezpečnost DB" zde označuje způsob, jak zabránit neoprávněnému přístupu k informacím uloženým v tabulkách. Ochrana zdrojového kódu formulářů a modulů se neuvažuje.

Relevance tohoto tématu je extrémně vysoká. To lze posoudit podle prvního místa v žebříčku (18 tisíc zobrazení) článku, který napsal Yuri Sherman. Dokonce jsem narazil na 500stránkovou knihu zcela věnovanou ochraně Accessu: Garry Robinson „Ochrana a zabezpečení databáze Microsoft Access v reálném světě“.

Standardní způsoby ochrany

Ochrana databáze heslem

Tento způsob ochrany umožňuje nastavit heslo pro otevření databáze pro všechny uživatele. Pro jeho vytvoření je potřeba otevřít databázový soubor v „exkluzivním“ režimu a zvolit v menu položku Nástroje / Ochrana / Nastavit heslo databáze. Pro práci s takovou databází v MS Access budete muset zadat heslo. Zde je příklad práce s databázovým souborem pomocí DAO nebo ADO.

Public Sub TestDAO()
Ztlumit mWS jako DAO.Workspace
Dim mDB jako DAO.Database
Nastavit mWS = DBEngine.Workspaces(0)

("C:\a97.mdb", Pravda, Pravda, ";pwd=123")
End Sub

Public Sub TestADO()

CnDB.Open "Provider=Microsoft.Jet.OLEDB.4.0" & _
";Zdroj dat=C:\a97.mdb" & _
";Jet OLEDB:Heslo databáze=123"
End Sub

Toto je nejspolehlivější způsob ochrany databází. Existuje dostatečný počet bezplatných a placených nástrojů, které zobrazují heslo. Včetně VB zdrojových kódů jsou k dispozici, které vám umožní přečíst takové heslo. Jinak to není všechno špatné. Jednoho dne jsem narazil na originální úpravu tohoto způsobu ochrany, o které bude řeč níže.

Ochrana uživatele heslem

Tato metoda umožňuje zavést další úroveň omezení souvisejících s provozem databáze Access. Na základě vytvoření souboru pracovní skupiny, který definuje uživatelská jména, jejich hesla a práva pro práci s různými databázovými objekty.

Pořadí akcí pro vytvoření chráněného souboru:

  • Vytvořte nový soubor pracovních skupin.
    K tomu je v roce 97-2000 Access spuštěn program WRKGADM.EXE a v roce 2003 Access musíte vybrat položku nabídky "Nástroje / Zabezpečení / Správce pracovní skupiny". Ve správci klikněte na tlačítko „Vytvořit“, zadejte název, organizaci a kód skupiny. Zadejte název a umístění souboru, který se má vytvořit. Například:
    Jméno: test_Name
    Organizace: ~
    Kód pracovní skupiny: řádek 20 znaků.
    Soubor pracovní skupiny: C:\test\gr.mdw
  • Vytvoření zástupce pro spuštění ms Access pomocí vytvořeného souboru mdw. Zástupce by měl obsahovat řádek: [cesta k MSACCESS.EXE] /WrkGrp [cesta k souboru mdw]. Například: "C:\Program Files\MSOffice2003\OFFICE11\MSACCESS.EXE" /WrkGrp C:\test\gr.mdw
  • Po spuštění aplikace Access pomocí této zkratky musíte otevřít položku nabídky „Nástroje / Zabezpečení / Uživatelé a skupiny“. V dialogovém okně, které se otevře, musíte vytvořit nového uživatele a přidat ho do skupiny "Admins". Například "test_User" byl vytvořen s kódem "987654321"
  • Nyní musíte otevřít Access jako vytvořený uživatel. Chcete-li to provést, musíte do vytvořeného zástupce přidat řádek: /user [uživatelské jméno]. Například: "C:\Program Files\MSOffice2003\OFFICE11\MSACCESS.EXE" /WrkGrp C:\test\gr.mdw /User test_User
  • Spusťte Access pomocí této zkratky. Nyní musí být vytvořenému uživateli přiřazeno heslo. To se provádí ve stejném dialogu Uživatelé a skupiny. Řekněme, že uživateli "test_User" je přiřazeno heslo "test_Password". Dále je potřeba vytvořit novou databázi. V tomto případě bude vlastníkem této databáze, stejně jako všech vytvořených nebo importovaných objektů (tabulek, dotazů atd.), uživatel, jehož jméno bylo uvedeno v zástupce.
  • Po vytvoření databáze je vhodné odebrat „Admin“ ze skupiny „Admins“ a odebrat práva k databázovým objektům a otevřít databázi ze skupiny „Users“.
  • Přidejte do zástupce název chráněné databáze. Například: "C:\Program Files\MSOffice2003\OFFICE11\MSACCESS.EXE" C:\test\db2k_test.mdb /WrkGrp C:\test\gr.mdw /User test_User /pwd test_Password

Zde je příklad otevření databáze chráněné na uživatelské úrovni pomocí DAO nebo ADO

Public Sub TestDAO()
Ztlumit mWS jako DAO.Workspace
Dim mDB jako DAO.Database
DBEngine.SystemDB = "C:\test\gr.mdw"
Nastavit mWS = DBEngine.CreateWorkspace_
("", "test_User", "test_Password", dbUseJet)
Nastavit mDB = mWS.OpenDatabase_
("C:\test\a97.mdb", pravda)
End Sub

Public Sub TestADO()
Dim CnDB jako nový ADODB.Connection
CnDB.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Zdroj dat=C:\test\a97.mdb;" & _
"Jet OLEDB:System database=C:\test\gr.mdw;" & _
"ID uživatele=testovaný_uživatel;" & _
"Heslo=test_heslo;"
End Sub

Odstranění takové ochrany.
Vytvořte novou databázi. Do zástupce napište cestu k této databázi, soubor MDW chráněné databáze, jméno a heslo vlastníka. Pomocí této zkratky otevřete novou databázi. Importujte do ní tabulky z chráněné a poté změňte databázi vlastníka pro všechny objekty na Admin. Ke zjištění jména a hesla vlastníka databáze můžete použít specializované programy popsané v recenzi Přístupová hesla. Pokud soubor pracovních skupin chybí, můžete jej obnovit. K tomu budete muset zjistit jména a ID vlastníků databázových objektů. Tyto informace jsou obsaženy v databázovém souboru a lze je získat pomocí programů, jako je AOPR. Pomocí těchto dat se vytvoří nový soubor. (sekvence popsaná výše)

Není vůbec nutné používat programy, které umožňují určit databázi nebo heslo uživatele. Programátoři se často vůbec nestarají o skrytí hesla v textu programu. Po spuštění programu, který pracuje s chráněnou databází, je potřeba otevřít virtuální paměť této aplikace v hexadecimálním editoru WinHex. Po vyhledání řetězců Unicode "User ID="; "Heslo="; "Heslo databáze=" nebo "pwd=" může najít uživatelské jméno, heslo a heslo databáze.


Přítomnost ochrany můžete zcela ignorovat. K tomu je potřeba použít AccessRecovery, který vytvoří nový soubor bez ochrany a přenese do něj tabulky, dotazy, formuláře, makra, sestavy a kód modulu.

Nestandardní způsoby ochrany

Změna přípony souboru

Poměrně jednoduchý způsob, jak uvést v omyl, je změnit příponu databázového souboru. Při pohledu na neznámou příponu se ne každý pokusí zjistit povahu tohoto souboru. Navíc je možné toto rozšíření přiřadit k vašemu programu, takže když kliknete na soubor, spustí se vaše aplikace, nikoli Access. Je vhodné otevřít takový soubor s výhradním přístupem, protože v tomto případě nebude soubor ldb vytvořen.

Ochrana pomocí hesla databáze obsahující netisknutelné znaky

V první řadě je tato metoda zaměřena na zabránění určování hesel pomocí speciálních programů. Jedna báze s takovou ochranou mi dobře zkazila poruchu. Teď jeho autorům zkazím náladu vyprávěním o této obraně. Metoda je založena na skutečnosti, že heslo databáze Access 2000 a 2002-2003 je textový řetězec ve formátu Unicode. Jeho obsah přitom není nijak omezen. Standardní způsob, jak nastavit a používat heslo databáze, spočívá v zadání hesla z klávesnice v dialogovém okně. Pokud řetězec hesla obsahuje netisknutelné znaky, program pro otevření hesla databáze je nezobrazí správně. Na druhou stranu toto heslo nelze zadat do dialogového okna při otevírání databáze v MS Access.
Ale nezapomněl jsem ani na Access 97. Faktem je, že specifikace databáze a nápověda DAO 3.60 udávají, že maximální počet znaků v hesle je 14. Ale ve skutečnosti jich může být 20. Přitom samotný Access 97 neumožňuje zadávat řetězce hesel delších než 14 znaků. Specifikace Access 2003 také říká o 14 znacích, ale program umožňuje zadat všech 20. Je možné použít i netisknutelné znaky, což většinu programů na prolamování hesel mate.

K nastavení takového hesla budete muset použít program, který používá metodu CompactDatabase knihoven ADOX nebo DAO.

Hackování zabezpečení.

  • Nejprve můžete použít AccessRecovery.
  • Za druhé, můžete zkusit určit heslo databáze pomocí speciálních programů. Přehled přístupových hesel poskytuje souhrnnou tabulku jejich možností.
  • Za třetí, heslo můžete zjistit analýzou programového kódu v debuggeru. Bez ohledu na heslo je stále předáno jako textový řetězec v metodě otevření databáze. Pokud máte nějaké zkušenosti, není to příliš obtížný úkol. Když jsem se poprvé setkal s takovou ochranou, podařilo se mi najít heslo pomocí debuggeru OllyDbg a najít místo, kde byl vytvořen ADODB.Connection
  • Heslo databáze můžete zjistit nebo změnit bez použití speciálních programů. V Access 97 se heslo získává XORingem hesla s 20bajtovou sekvencí. Hodnoty těchto bajtů lze získat z libovolného souboru mdb, který není chráněn heslem. Počínaje Access 2k je díky použití Unicode přiděleno 40 bajtů pro uložení 20 znaků hesla. Přidávání XOR se používá také během šifrování, ale pro získání sekvence bajtů odpovídajících prázdnému heslu je třeba vytvořit soubor s datem studované databáze. Výsledné bajty mohou být vloženy do zkoumaného souboru a heslo může být resetováno, nebo mohou být přidány k podobným bajtům ve zkoumaném souboru a lze získat hodnotu hesla.

Tato práce nepojednává o možných manipulacích se soubory pracovní skupiny. Jistě existují způsoby, jak ochránit hesla v nich uložená před příliš vlezlými programy, ale to vše ztrácí smysl při použití AccessRecovery, které si ochrany vůbec nevšimne.

Ochrana proti změnám souborů

Metoda ochrany je založena na úpravě prvních bajtů souboru. Před otevřením databáze se tedy do jejího souboru zapíše správná hlavička uložená v programu a po zavření se vrátí ta nesprávná. Při pokusu o otevření souboru databáze pomocí ms Access se zobrazí chybová zpráva. Není špatný nápad kombinovat tuto metodu se změnou přípony souboru. Můžete například vzít hlavičku souboru dbf a zapsat ji na začátek souboru mdb. Dále změňte příponu souboru na dbf a užijte si výsledek. Databázi lze nyní otevřít v Excelu, Accessu nebo jiném programu, který umožňuje číst soubory dbf. Zde je příklad takové konverze:

"úprava hlavičky databázového souboru
"Příklad: Volání BaseProtect("C:\01.mdb", True)

Public Sub BaseProtect (sPath As String, Block As Boolean)
Dim iFn jako Integer
iFn = FreeFile()
Otevřete cestu pro binární přístup Zapište jako #iFn
Vložte #iFn, 5, CStr(IIf(bLock, _
"ProtectDataBase", "Standard Jet DB"))
Zavřete #iFn
End Sub

Metoda není dostatečně účinná, protože program pracující s databází může být uměle přerušen a na disku zůstane nechráněná databáze. Proto by se měl používat pouze v kombinaci s jinými metodami.

Ochrana změnou verze databáze

Tato metoda je dalším rozvojem myšlenky úpravy záhlaví souboru, aby bylo možné čelit programům, které čtou hesla. Metoda je založena na skutečnosti, že programy pro práci s databází Access 97 a 2k používají různé algoritmy pro čtení hesla a zároveň se snaží nezávisle určit verzi souboru mdb.

K určení verze můžete použít sekvenci 40 bajtů počínaje 122 od začátku souboru. Pokud tuto sekvenci z Accessu 2k zadáme do databáze Access 97, dostaneme zajímavý výsledek. MS Access, ADO a DAO s tímto souborem fungují dobře a většina programů pro prolamování hesel tomuto triku vyhovuje. Podobný výsledek lze získat přesazením bajtové sekvence z Accessu 97 do Accessu 2k

Přístup k záhlaví souboru 2k
Fragment hesla databáze je zvýrazněn zeleně
modrá - fragment charakteristický pro verzi databáze
Offset 0 1 2 3 4 5 6 7 8 9 A B C D E F

00000000 00 01 00 00 53 74 61 6E 64 61 72 64 20 4A 65 74
00000010 20 44 42 00 01 00 00 00 B5 6E 03 62 60 09 C2 55
00000020 E9 A9 67 72 40 3F 00 9C 7E 9F 90 FF 85 9A 31 C5
00000030 79 BA ED 30 BC DF CC 9D 63 D9 E4 C3 9F 46 FB 8A
00000040 BC 4E 9B 6D EC 37 40 D2 9C FA DB C8 28 E6 0E 20
00000050 8A 60 49 02 7B 36 E8 E4 DF B1 6A 62 13 43 D2 39
00000060 B1 33 29 F7 79 5B 8F 23 7C 2A 4F E9 7C 99 08 1F
00000070 98 FD DC 75 0C FF D8 FD 82 66 5F 95 F8 D0 89 24
00000080 85 67 C6 1F 27 44 D2 EE CF 65 ED FF 07 C7 46 A1
00000090 78 16 0C ED E9 2D 62 D4 54 06 00 00 34 2E 30 00

Ochrana pomocí elektronického klíče

To je další potvrzení toho, že standardní metody ochrany, a to i od výrobců třetích stran, jsou zranitelné. Mluvíme o klíčích HASP. Pomocí utility HASP Envelope můžete zašifrovat soubor (v tomto případě databázi) a povolit k němu přístup pouze z chráněné aplikace. Je použit "transparentní" šifrovací mechanismus. Při spuštění operačního systému je spuštěn určitý proces, který monitoruje veškerý přístup k chráněnému databázovému souboru. Pokud tento požadavek přijde z běžné aplikace, například z ms Access, soubor se přečte a zobrazí se zpráva o „nerozpoznatelném formátu databáze“. Pokud však aplikace zadaná při šifrování pracuje se souborem, data se do něj přenesou v dešifrované podobě. Výsledkem je, že samotný program nemá podezření na přítomnost ochrany. Ano, obtížnost hacknutí takové databáze se výrazně zvyšuje. Zároveň ale musíme pamatovat na to, že k aplikaci musí být dodán elektronický klíč v ceně $ N. a že rychlost přístupu k datům klesne dvakrát až třikrát.

Hackování zabezpečení.

Byly nalezeny dva způsoby, jak získat úplnou objednávku databáze.

  • Za prvé, programový kód se ukázal být zranitelný. Do databáze se přistupovalo pomocí dotazů. Od začátku byl v debuggeru nalezen požadavek, který byl volán v reakci na stisk tlačítka v programu. Dále byl tento požadavek nahrazen textem požadavku na vytvoření tabulky v jiné databázi. Po kliknutí na tlačítko dotaz vybral data tabulky z chráněné databáze a uložil je do jiného souboru.
  • Za druhé byl napsán program, který pomocí háčku vložil svůj kód do adresního prostoru procesu chráněného HASP a jednoduše zkopíroval databázový soubor jeho jménem.

Šifrování hodnot tabulky

Tato metoda není špatná. V každém případě je reálná naděje něco zachránit. Existuje však řada omezení. Před zobrazením dat je třeba je dešifrovat. Neexistuje způsob, jak hledat část řetězce v šifrovaném poli. Šifrovací algoritmus a klíč jsou obsaženy v programu, což znamená, že existuje potenciální zranitelnost. V tomto případě závisí spolehlivost na odolnosti programu pracujícího s databází proti hackerství. Můžete spojit podnikání s potěšením: nešifrovat, ale komprimovat obsah polí poznámek. Vypořádat se s kompresním algoritmem v programovém kódu je nudný úkol.

Závěr

Než položíte otázku, jak chránit databázi, měli byste se zamyslet nad její nezbytností. Neměli byste se spoléhat na standardní metody, ale to není důvod, abyste přestali používat Access. Specialista může hacknout cokoli, ale vy to nemůžete tak snadno.

Následující článek popisuje transparentní šifrování databází Accessu, které má oproti stávajícím metodám několik výhod.

Rozšířené používání MS Access vedlo ke vzniku celé třídy programů, které umožňují zjistit „zapomenutá“ hesla k databázím. Nevím, kdo byl první, ale vypadají jako dvojčata.

Testování

Všechny programy probírané v této recenzi zvládnou hesla typu „může“. Ne každý vám ale umožní zjistit nestandardní hesla. Výsledky testu jsou uvedeny v tabulce. Více o metodách ochrany si můžete přečíst v článku Ochrana a hackování databází Accessu. Zde lze poznamenat, že vůdcem se stal. Soubor databáze Accessu chráněný heslem s 20 netisknutelnými znaky a záhlavím jiné verze zůstal nepřístupný. Bohužel nepřístupné zůstalo pouze heslo, ale ne databáze. umožňuje obnovit obsah tabulek a téměř úplně znovu vytvoří soubor, včetně tabulek, dotazů, formulářů, maker, sestav a kódu modulu. Testování se účastnily registrované verze programů.

Umožňuje otevřít hesla databáze Access. Kromě toho je možné odebrat nebo nahradit heslo pro databáze Access 97

Jediný program, který vytváří hesla v šestnáctkové soustavě, což umožňuje zobrazit hesla, která používají netisknutelné znaky. Kdysi jsem si to myslel, ale ve skutečnosti je řetězec převeden do hexadecimálního tvaru a ve výsledku z toho není žádný užitek. Databáze Access 97 s heslem o délce 20 znaků jsou považovány za poškozené a nepřinášejí žádné výsledky.

AOPR umožňuje definovat hesla pro mnoho MS aplikací. Při použití na databázi Access může určit:

  • Heslo databáze
  • Vlastník databáze - uživatelské jméno (uživatel) a jeho identifikátor (ID)
  • Informace o vlastníkech databázových objektů
Po otevření souboru pracovních skupin v AOPR můžete vidět:
  • Uživatelská jména a jejich hesla
  • Členství ve skupině uživatelů

Program určuje hesla pro databáze formátu 97 - 2000 - 2003. Pro databáze Access 97 lze hesla měnit a mazat.

Je třeba poznamenat, že program není ve svém vývoji na mrtvém bodě. Zlepšují se algoritmy pro určování hesel. Pokud v předchozí verzi (AOXPPR) pro Access 97 - pouze prvních 14 znaků a pokud narazí na netisknutelné znaky, znamená to, že soubor je poškozen. Access 2k – normálně přečte všech 20 znaků, ale v Unicode zobrazí otazníky. V popsané verzi jsou všechna hesla normálně definována a netisknutelné znaky se normálně zkopírují do schránky.

Jedná se o sadu nástrojů, které vám umožňují zjistit hesla pro velmi velké množství aplikací. Program Office Key pracuje s databází Accessu. Umožňuje určit databázová hesla, skupiny, uživatele a jejich hesla ze souboru pracovních skupin. Podobné funkce má i další utilita tohoto výrobce, Access Key. Velikost archivu je 662 kB. Je to samostatný produkt a není součástí Passware Kit.

Program neumožňuje zjistit identifikátory (ID) uživatelů, vlastníka databáze a jejích objektů. Z hlediska schopností je tedy horší. S testy si však poradila dobře. Zkopíruje skutečné heslo do schránky, nikoli otazníky. Normálně určuje hesla nahrazením sekvence 40 bajtů, charakteristických pro různé verze databáze. Jediná chyba je v souboru Access 97 s netisknutelnými znaky.

Program umožňuje určit heslo databáze, vlastníka databáze - jeho jméno a identifikátor. Pomocí souboru pracovní skupiny určuje uživatelská jména a hesla. Pracuje s databází ms Access 2.0 - 2003

Heslo uživatelského účtu je definováno tak, aby se zabránilo uživateli připojit se pod účtem jiného uživatele. MS Access výchozí přiřadí k uživatelskému účtu Admin a všechny nové uživatelské účty vytvořené v pracovní skupině, prázdná hesla.

Pozor! Pokud je heslo ztraceno nebo zapomenuto, nebude možné jej obnovit. Proto byste jej měli skladovat na bezpečném místě. Pro získání přístupu do databáze musí uživatel, který ztratil své heslo, kontaktovat správce(pro člena skupiny Správci pracovní skupina, ve které byly účet a heslo vytvořeny), aby mohl heslo odstranit.

Pro vytvořit heslo uživatel potřebuje:

1. Spusťte MS Access pomocí pracovní skupiny, ve které je uložen uživatelský účet, a přihlaste se pomocí účtu, pro který potřebujete vytvořit nebo změnit heslo.

2. Otevřete databázi.

3. Na kartě ve skupině Správce vybrat tým

4. Na kartě Změna hesla opustit pole Aktuální heslo prázdný, pokud účet dříve neměl heslo. V opačném případě zadejte do pole Aktuální heslo Staré heslo.

5. Zadejte Nové heslo v terénu Nové heslo.

6. Zadejte znovu Nové heslo v terénu Potvrzení a stiskněte tlačítko OK(obr. 11.18).

Odstranění hesla uživatelského účtu

Chcete-li provést tento postup, musíte se přihlásit do databáze pomocí účtu člena skupiny Správci.

1. Spusťte MS Access pomocí soubor pracovní skupiny, ve kterém je uložen uživatelský účet.

2. Otevřete databázi.

3. Na kartě Práce s databázemi nástrojů ve skupině Správce vybrat tým Uživatelé a oprávnění – Uživatelé a skupiny….

4. Na kartě Uživatelé do pole zadejte název uživatelského účtu Jméno.

5. Stiskněte tlačítko Odebrat heslo(obr. 11.19).

6. Opakováním kroků 4 a 5 odstraňte další hesla a stiskněte tlačítko OK.



Přístupová oprávnění

Oprávnění- sada atributů, které určují práva uživatele k datům nebo objektům v databázi.

Existují dva typy přístupová oprávnění:

1. Explicitní - pokud jsou přímo přiřazeny k uživatelskému účtu. Tato oprávnění nemají vliv na oprávnění ostatních uživatelů.

2. Implicitní - Přístupová oprávnění přiřazená ke skupinovému účtu. Uživatel zařazený do takové skupiny obdrží všechna oprávnění udělená skupině. Odebráním uživatele z této skupiny odeberete všechna oprávnění přiřazená této skupině.

Když se uživatel pokusí provést jakoukoli operaci s chráněným databázovým objektem, jeho aktuální oprávnění jsou určena kombinací explicitních a implicitních přístupových oprávnění. Na uživatelské úrovni vždy jednat minimální omezení uloženého explicitní oprávnění pro uživatele a pro všechny skupiny, do kterých uživatel patří. Nejjednodušším způsobem správy pracovní skupiny je proto vytvořit nové skupiny a definovat přístupová oprávnění pro tyto skupiny, nikoli pro jednotlivé uživatele. Poté můžete změnit oprávnění pro jednotlivé uživatele přidáním uživatelů do skupin nebo jejich odebráním ze skupin. Navíc, pokud je potřeba udělit nová oprávnění, jsou udělena všem členům skupiny najednou v jediné operaci.

Změňte oprávnění ostatních uživatelů k jednotlivým databázovým objektům následující uživatelé mohou:

· členové skupiny Správci, definovaný v soubor pracovní skupiny, který byl použit k vytvoření konkrétní databáze;

· majitel objekt;

· jakýkoli uživatel, který za tento objekt obdržel oprávnění správce.

V některých případech mají uživatelé, kteří nemají oprávnění k provedení akce, možnost si ji přiřadit. K této situaci dochází u uživatele, který je členem skupiny Správci nebo majitel objekt.

Uživatel, který vytvořil tabulku, dotaz, formulář, sestavu nebo makro, je majitel tento objekt. Kromě toho může skupina uživatelů, kteří mohou měnit oprávnění v databázi, také změnit vlastníka objektů nebo tyto objekty znovu vytvořit, což je alternativní způsob, jak změnit vlastníka objektů. Pro opětovné vytvoření objektu stačí tento objekt importovat nebo exportovat do jiné databáze nebo vytvořit kopii objektu. Tato technika je nejjednodušší způsob, jak změnit vlastníka objektů včetně celé databáze.

Mít správce a vlastníky je zásadní, protože mají oprávnění, která nelze odebrat.

1. Správci(členové skupiny Správci) může vždy získat všechna oprávnění k objektům vytvořeným v pracovní skupině.

2. Účty, které jsou vlastníků tabulky, dotazy, formuláře, sestavy nebo makra mohou vždy získat plná oprávnění pro přístup k těmto objektům.

3. Účet, který je majitel DB, může vždy otevřít DB.

Protože uživatelské účty Admin jsou naprosto stejné pro všechny instance MS Access, pak prvním krokem při organizaci bezpečnostního systému je definování účtů správce A majitel(nebo jeden účet, který je zároveň účtem správce i vlastníka). Poté byste měli uživatelský účet smazat Admin ze skupiny Správci. Pokud to neuděláte, každý uživatel aplikace Microsoft Access se bude moci připojit k pracovní skupině pomocí účtu Admin a získat všechna oprávnění přístup k tabulkám pracovní skupiny, dotazům, formulářům, sestavám a makrům.

Do skupiny Správci Můžete však přidat libovolný počet účtů vlastník databázeÚčet může být pouze jeden - ten, který byl aktivní při vytváření databáze, nebo ten, který byl aktivní při převodu vlastnických práv vytvořením nové databáze a importem všech objektů z původní databáze. Skupinové účty však mohou být vlastníky tabulek, dotazů, formulářů, sestav a databázových maker.

K přihlášení do MS Access lze použít pouze uživatelské účty; Přihlášení pomocí skupinového účtu není možné.

Účty vytvořené pro uživatele databáze musí být uloženy v souboru pracovní skupiny, ke které se uživatelé připojí, aby mohli s databází pracovat. Pokud je k vytvoření databáze použit jiný soubor pracovní skupiny, je nutné jej před vytvořením účtů změnit.

Pro své účty musíte vytvořit jedinečná hesla správce A uživatelů. Uživatel, který se připojí k účtu správce, bude mít vždy úplná oprávnění ke všem tabulkám, dotazům, formulářům, sestavám a makrům vytvořeným v pracovní skupině. Uživatel, který se připojí pomocí účtu vlastníka, bude vždy moci získat všechna oprávnění pro přístup k objektům vlastněným tímto vlastníkem.

Po vytvoření uživatelských a skupinových účtů můžete zobrazit a vytisknout jejich obrysy. MS Access vytiskne sestavu Účty pracovní skupiny, která zobrazuje skupiny, do kterých každý uživatel patří, a všechny uživatele v každé skupině.

A další. V zásadě zobrazují heslo o délce 2-16 znaků (v závislosti na verzi programu). Na tuto odpověď bychom se mohli omezit, ale protože se podrobně zabýváme problematikou programování a ochrany databází, budeme se jí zabývat vážněji.
Nemám popis algoritmu hesla pro Access 2000, i když existují informace o šifrování Access 97 na internetu v anglickém jazyce. Podstatou informace je, že heslo je zašifrováno nejjednodušším algoritmem XOR a jeho offset od začátku souboru = 67 bajtů. Ale tato data zjevně nestačí k dešifrování. Zkusme proto vytvořit program, který bude heslo analyzovat sám. Podstatou navrhované metody je opakované porovnávání souborů s hesly a bez nich a hledání vzorů. Všechny výsledky experimentu jsou uloženy v tabulce a použity k analýze hesla. Příklady programů pro určení hesla Access 2000 jsou zaznamenány v ukázce 7 souboru: la_prot.mdb
Takto můžeme určit a) délku hesla; b) posun hesla od začátku souboru; c) pozice měnících se bajtů d) maska ​​hesla (slovo pro dešifrování). Pomocí funkce funAnalysisPassword můžete získat následující informace.
1. Posun hesla od začátku souboru je 67 bajtů.
2. Maska hesla je 40 bajtů (délka hesla je 20 znaků)
3. Maskovat bajty:
055 056 212 156 250 163 206
040 230 118 038 138 096 049 004 123 054
144 226 223 177 018 100 019 067 170 063
177 051 081 241 121 091 247 037 124 042
...
Bajty masky se mění v závislosti na datu nastaveném v počítači. Například dne 17. 3. 2001 = 228 107 236. Bylo ověřeno, že 67 bajtů se mění denně, 68 bajtů ročně a 69 bajtů má ještě delší období změny. Bajty se mění při každém vytvoření databáze. Odtud můžeme usoudit, že se jedná o bajty, které uchovávají nějaké informace o datu vytvoření databáze.
4. Šifrovací algoritmus XOR.
Příklad šifrování: p XOR m = ?.
Příklad dešifrování: ? XOR m = p. Příklady používají následující zápisy: p-bajt hesla databáze, m-bajt masky hesla, ? - zašifrovaný bajt.
5. Znaky jsou uloženy ve formátu UNICODE, tedy 2 bajty na znak, proto je nutné převést řetězec hesla. To se provádí takto: password=StrConv(s, vbFromUnicode)
Pro nalezení hesla tedy stačí určit bajty 67-69 pomocí informací z bajtů 115-117. Problém je to velmi zajímavý a originální, tak se zamyslete trochu sami. V uvedených příkladech, la_prot, byla maska ​​hesla určena přibližně jinak. K tomu se podívejte na funkci funGetMaskPassword. Podstata metody. a) přečíst datum vytvoření souboru FileDateTime(myDataBase), b) nastavit čas Time = timeDB, c) vytvořit nechráněnou databázi a načíst masku do pole, d) vrátit aktuální čas a smazat nepotřebné soubory.
Po dešifrování souboru byl spuštěn program pro testování hesla. Pomocí tohoto programu můžete najít několik bajtů hesla pomocí běžného vyhledávání znaků. Jeho kód je uveden níže:
Veřejná funkce funTestPassword(strMdb As String, strPassword As String) As Boolean
Dim cnn As New ADODB.Connection
cnn.ConnectionString = "Poskytovatel=Microsoft.Jet.OLEDB.4.0;Zdroj dat=" & strMdb & ";Režim=Čtení;Jet OLEDB:Database Password=" & strPassword
cnn.Otevřít
"Následuje kontrola chyb
PS. V příkladu 7 (la_prot.mdb) najdete další funkce, které s heslem pracují. Jejich použití není nutné, protože pokud znáte heslo, můžete je odstranit nebo změnit pomocí Accessu, ale mohou být užitečné pro kontrolu různých algoritmů.




Nahoru