INFORMACE: Jak jazyka 3.0 popisovače zabezpečení nastavit podle aplikace

Překlady článku Překlady článku
ID článku: 105990 - Produkty, které se vztahují k tomuto článku.
Tento článek byl archivován. Je nabízen v takovém stavu, v jakém je, a nebude již nadále aktualizován.
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Jazyka verze 3.0 zahrnuje databázový stroj Microsoft Access. Jazyka obsahuje syntaxi databáze Microsoft Access téměř každý způsobem bude možné manipulovat. Jedinou výjimkou hlavní je v oblasti zabezpečení. Bude pouze můžete nastavit nebo změnit možnosti zabezpečení (například přihlašovací ID a hesla pro systém) a nastavit nebo změnit oprávnění pro konkrétní objekty určitou databázi.

Jazyka verze 3.0 neobsahuje dva příkazy (SetDataAccessOption a SetDefaultWorkspace), které aplikaci jazyka k uspokojení mechanismus zabezpečení povolit, že bude implementuje a přihlaste se pomocí kódu jazyka. Pomocí těchto příkazů můžete získat oprávnění udělená určitého uživatele.

Tento článek vysvětluje mechanismy zabezpečení aplikace Microsoft Access, které se týkají jazyka verze 3.0 a programátor jazyka. Funkce zabezpečení celý aplikace jsou nad rámec tohoto článku.

Úplný popis možností zabezpečení aplikace naleznete v následujícím článku znalostní báze Knowledge Base:
122036WX1051: Průvodce a White Paper aplikační poznámka 2.0

Další informace

Zabezpečení aplikace Microsoft Access je implementována do dvou částí:
  • Každý uživatel a skupina má zabezpečení jedinečný kód ID (SID).
  • Kód SID je uložen v databázi spolu s přidruženou oprávnění dané SID.
Další dvě sekce dát podrobnosti.

Má jedinečné ID zabezpečení (SID) každého uživatele a skupiny

V aplikaci Access má ID zabezpečení (SID) každého uživatele a skupiny. SID je binární řetězec, který jednoznačně identifikuje uživatele nebo skupinu. Při přihlášení uživatele, zda z přihlašovacího dialogu v aplikaci Access nebo kód jazyka (znázorněno později v článku), stroj Microsoft Access přečte z tabulky MSysAccounts databáze SYSTEM.MDA. Tato databáze je vytvořena aplikací Microsoft Access a nový (prázdný) bude vytvořen, pokud původní kopie odstraněny.

Poznámka: Pokud původní SYSTEM.MDA neúmyslně odstraněna, jedinečné identifikátory jsou ztraceny. Všechny schopnost získat přístup k chráněné databází je tedy také ztraceny. Proto je vhodné zálohovat databáze a souboru SYSTEM.MDA místě při byly oprávnění nastavena na databázi.

Při přihlášení, uživatel zadává uživatelské jméno (rozlišující malá a velká není písmena) a heslo (rozlišující malá a velká písmena). Pokud uživatelské jméno a heslo jsou správné, SID uživatele načtena a uložena ve struktuře vnitřní stroj. Heslo se používá pouze k ověření uživatele. Z tohoto bodu Jakmile uživatel stane ověřený uživatel heslo nemá vliv na zabezpečení.

Zde je klíče bod, který se vztahuje k chování Visual Basic. Ve výchozím stroj Microsoft Access se pokusí ověřit uživatele a heslo správce a „ "respektive. Jazyka verze 3.0, bez jakéhokoli kódu odešle tuto kombinaci kláves stroj Microsoft Access ve výchozím nastavení. To znamená, že i bez použití příkazy související se zabezpečením jazyka programu jazyka bude získat přístupu do databáze, pokud uživatel "Admin" ze skupiny Administrátoři není měl jeho heslo změněno z výchozí žádné ("").

Jakmile přihlášen, je načíst číslo SID uživatele. SID se používá pro všechny následné operace v rámci stroj Microsoft Access.

SID je uložená v databázi SYSTEM.MDA

IDENTIFIKÁTOR je uložen v samotné databázi. Všechna oprávnění udělená určitého uživatele nebo skupinu jsou tedy uloženy také v databázi přidruženého jedinečné SID.

To vyvolá jiný bod klíče týkající se chování Visual Basic. Program jazyka získat položku databáze a mají plná oprávnění seeming mechanismus zabezpečení bude ignorovat, pokud platí některá z následujících:
  • Programátor jazyka má nebere umístění SYSTEM.MDA databáze do účtu v kódu programu.
  • User "Admin" není měl jeho změněn z výchozí žádné heslo ("").
K tomu dochází z důvodu výchozí chování stroj Microsoft Access a jazyka. Kombinované efekt je umožnit položka databázi a její objekty podle kódu jazyka.

Seznam typů objektů v aplikaci Access jsou: tabulky, dotazu, formuláře, sestavy, makra a modulu. Tyto jsou pouze první dva přístupné z kód jazyka, takže ostatní vynechán z této vysvětlení.

Následující dvě části popisují každý dvou jazyka zabezpečení souvisejících příkazů (SetDataAccessOption a SetDefaultWorkspace). Dva příkazy jsou navrženy tak, aby poskytují voleb SYSTEM.MDA soubory a položky přihlášení k databázi Microsoft Access, s zabezpečení bude nastaveno. Následující tyto dva oddíly je oddíl, který spojuje dva příkazy k chování stroj Microsoft Access s ohledem na zabezpečení.

Prohlášení SetDataAccessOption--Syntaxe a chování

SetDataAccessOption má následující parametry:
   SetDataAccessOption option, value

   option is a numeric value with only one legal value (1).
				

Například:
   SetDataAccessOption 1, "E:\VBPROJ\MY.INI"
				

V souboru DATACONS.TXT dodaná kořenové adresáře \VB konstanta definovaná pro tuto hodnotu:
   Global Const DB_OPTIONINIPATH = 1
				

SetDataAccessOption Nastaví název a cestu souboru inicializace (INI) vaší aplikace. Souboru INI aplikace se projeví pouze v případě, že SetDataAccessOption používá před funkce přístupu dat je načten a inicializován. Jakmile byla inicializována přístup k datům, toto nastavení nelze změnit bez ukončení aplikace. Hodnota je řetězcový výraz. Argument hodnota pro možnost DB_OPTIONINIPATH obsahuje výraz řetězec poskytující cestu a název souboru inicializace (INI) vaší aplikace. Inicializační soubory jsou obvykle uloženy v adresáři \WINDOWS uživatele a mít stejný název jako spustitelný soubor, ale s příponou INI. Pomocí tohoto prohlášení pouze pokud vaše aplikace inicializační soubor má jiný název nebo je v adresáři než adresáře \WINDOWS.

Výkaz SetDataAccessOption není nutný při spuštění projektu jazyka v prostředí VB.EXE Pokud soubor VB.INI (v adresáři \WINDOWS) obsahuje následující řádky:

[Možnosti]
SystemDB=T:\ACCESS\SYSTEM.MDA
UtilityDB=T:\ACCESS\UTILITY.MDA

Poznámka: skutečné umístění SYSTEM.MDA není významné předpokladu bude a jazyka obsahovat položku směřující SYSTEM.MDA jejich budou sdílet. Prohlášení SetDataAccessOption není vyžadován, pokud má vlastní soubor INI v \WINDOWS souboru .exe aplikace a soubory EXE a ini sdílejí stejný název.

Prohlášení SetDefaultWorkspace--Syntaxe a chování

SetDefaultWorkspace má následující parametry:
   SetDefaultWorkspace username, password
				

Pokud je tento příkaz, bude jazyka databázový stroj Microsoft Access, která je součástí jazyka odeslat ekvivalentní následující řádek:
   SetDefaultWorkspace "Admin" , ""
				

Toto prohlášení účinek získání platné SID a získání položka všechny tabulky a dotaz objekty v databázi.

Vztahy mezi jazyka a bude zabezpečení

Pochopit vztah mezi zabezpečení jazyka a bude nutné porozumět mechanismus zabezpečení bude. Zde je podrobné vysvětlení pro využití programátor jazyka, který má nejsou používány aplikace. Je hierarchie oprávnění v aplikaci Access. Na nejvyšší úrovni jsou skupiny. Obsažené určité skupiny jsou uživatelé. Selektivně udělení oprávnění konkrétním uživatelům, všechna oprávnění musí nejprve být výběr zrušit nebo odebrán ze skupiny Users'. Potom a pouze potom lze oprávnění uděleno nebo odvolán pro jednotlivé uživatele.

Explicitní oprávnění se nazývají oprávnění uvedená pro jednotlivé uživatele. Oprávnění nastavená pro skupinu obsahující uživatelský účet se nazývají implicitní oprávnění. Implicitní oprávnění převzít prioritu explicitní oprávnění.

Pomocí nabídky zabezpečení můžete nastavit oprávnění v aplikaci Access po otevření databáze a má uživatel přihlášen. Z nabídky zabezpečení vyberte oprávnění přiřadit oprávnění každý objekt v databázi, což znamená pouze tabulky a dotaz objekty v jazyka.

Například pokud došlo skupiny v aplikaci Access databáze s názvem analytici obsahující uživatele Petr a Sue a chcete omezit pouze Petr číst data a udělit Zuzana úplné oprávnění, postupujte takto:
  1. Přihlaste se k bude jako uživatel ve skupině Administrátoři. Zadejte například správce nebo Jan.
  2. Z nabídky zabezpečení vyberte oprávnění (ALT S P).
  3. Objekty tabulky jsou výchozí typ. Vyberte název tabulky, kterou chcete nastavit oprávnění u. Vyberte například TestTbl.
  4. Nastavte možnost v rámečku uživatel či skupina skupiny. Potom klepněte na seznamu pole se seznamem dolů a klepněte na tlačítko analytici vyberte danou skupinu.
  5. Zrušte zaškrtnutí všech políček odvolat všechna oprávnění pro celou skupinu.
  6. Změňte tlačítko možnost seznam uživatelů a vyberte Petrovi. Zrušte zaškrtnutí políček pro všechny Petrův oprávnění.
  7. Ze seznamu vyberte Sue a zaškrtněte políčko úplné oprávnění.
  8. Změny se projeví v tabulce klepněte na tlačítko přiřadit.
Předpokládá se v tomto okamžiku máte program jazyka obsahující následující kód v události formuláře zatížení:
Sub Form_Load ()
   Dim db As database
   Dim ds As dynaset
   Dim scenario as integer

   scenario = 'insert a value between 1 and 4 here

   select case scenario
      case 1:
         ' Do nothing

      case 2:
         SetDefaultWorkspace "bob", "leftout"

      case 3:
         SetDataAccessOption 1, "E:\VB.INI"    ' not in \WINDOWS directory

      case 4:
         SetDataAccessOption 1, "E:\VB.INI"    ' not in \WINDOWS directory
         SetDefaultWorkspace "bob", "leftout"
   end select

   Set db = OpenDatabase("E:\DATACON\BASES\ACCESS11\ASAMPLE.MDB") ' point 1
   Set ds = db.CreateDynaset("TestTbl")                           ' point 2

   autoredraw = True   ' to make Print  statement persist on the form
   Print ds(0), ds(1)

End Sub
				

Zde je několik scénářů ilustrují vztah mezi jazyka a Microsoft Access Security:

Scénář 1: V tomto případě neexistuje odkaz na umístění souboru SYSTEM.MDA. Nelze najít soubor INI s oddílu [Options] uvedené dříve v tomto článku jsou Windows a stroj Microsoft Access. Proto SYSTEM.MDA ignorovány a jazyka výchozí kombinaci jeho výchozí uživatele a heslo ("Admin", ""). Však dříve, výchozí heslo pro uživatele Admin byla změněna na jinou než „ ". Kromě toho byly odvolán všechna oprávnění pro skupiny Admins a pro uživatele "Admin" ve skupině Administrátoři. Následující chyba jazyka dochází proto bodu 2:
Couldn't Read; No Read permission for Table or Query 'f)) '

Zadní dveře jazyka a jakékoli aplikace jazyka při pokusu o přihlášení v souboru SYSTEM.MDA obejít zavřeli.

SCÉNÁŘ TWO: V tomto případě protože vyvolání výkazu SetDefaultWorkspace bez nutnosti jakékoli ukazatel souboru SYSTEM.MDA stroj jazyka Microsoft Access hunts souboru SYSTEM.MDA a 0 v okamžiku kód není, hledání poskytuje následující chybě:
Nelze najít soubor 'SYSTEM.MDA

Poznámka: Chyby, ke kterým dochází v obou scénáře jedna a dva jsou stejné jako by nastat pokud SYSTEM.MDA soubor byl přesunut, přejmenován nebo odstraněn.

SCÉNÁŘ Tri: V tomto případě můžete sdělit stroj jazyka Microsoft Access, kde je umístěn soubor SYSTEM.MDA však není zadat kombinaci uživatele a heslo. Proto opět jazyka dodává pouze kombinaci uživatele a heslo ví ("Admin", ""), který je již platnou kombinaci protože přidat heslo účtu správce uživatele. V důsledku toho jazyka poskytuje následující chyba v bodě 1 v kódu:
Není platný účet nebo heslo.

SCÉNÁŘ CTYRI: V tomto případě je zadat oba parametry správně. Proto protože poskytl oprávnění "Číst data" Petr stejně jako „ čtení definice"Povolit jazyka bude modul pro čtení, vytiskne aplikace jazyka první dvě pole v prvním záznamu v tabulce s názvem TestTbl.

Pokud opakuje čtyři scénáře s Zuzana User všechny by být stejné. Sue by však přejděte dále a upravit strukturu tabulky a také data. Nezapomeňte, že nejprve vybrané skupiny analytikům a odvolán všechna oprávnění. Potom jste přidali zpět všechna oprávnění Sue, ale pouze čtení dat a čtení definice byly přidány do Petrovi.

Poznámka: The Admins Group má zvláštní význam s ohledem na zabezpečení. To platí pro všechny uživatele v dané skupině. SID skupiny Admins je uložena v SYSTEM.MDA při vytvoření databáze. Skupiny Administrators v důsledku toho budou mít vždy oprávnění ke změnám oprávnění na všechny objekty v databázi. Toto oprávnění nelze zpřístupnit pryč kdokoli. Toto oprávnění zůstane, i když byly odvolány všechna oprávnění ze skupiny Administrátoři a není zobrazena v dialogovém okně oprávnění. Toto je z jiného důvodu k zachovat zálohy a sledovat které SYSTEM.MDA byl používán při vytvoření databáze.

S OwnerAccess Option v dotazu SQL


Jeden bod poslední možné záměně vyhnout revolves kolem použití následující frázi v dotazu SQL:
   ... With OwnerAccess Option
				

Například prohlédněte tento kód:
   Sub Form_Load ()
      Dim db As Database
      Dim qd As querydef

      Set db = OpenDatabase("C:\ACCESS\DB1.MDB")

      ' Enter the following two lines of code as one, single line:

      Set qd = db.CreateQueryDef("myQD", "select * from [TableDetails]
         with owneraccess option ;")
      db.Close
   End Sub
				

Tento kód je výsledkem této chybě:
Neplatné ID databáze

Toto je, protože OwnerAccess odkazuje na vlastníka databáze. Vlastník je tvůrce databáze. Jinými slovy OwnerAccess odkazuje na vlastníka uživatele a heslo kombinaci (jedinečné SID), který je uložen v databázi (BD1.MDB v tomto případě). Kód neobsahuje dva příkazy potřebné k přejděte do souboru SYSTEM.MDA zabezpečené databáze. Ve skutečnosti v tomto případě pouze SetDefaultWorkspace výkazu je nezbytné, pokud je v adresáři \WINDOWS obsahující platný oddíl [Options] souboru INI kompilovaný soubor .exe.

Kód používá backdoor. Jej není dodal jedinečný kód SID vlastníka databáze stroj, takže stroj nebude vědět kombinaci výchozí jméno a heslo (Admin, "") uživatele, je vlastník databáze. I když jej zapne uživatele Admin je vlastník databáze bez nutnosti číst soubor SYSTEM.MDA stroj nemůže ověřit faktů, tak poskytuje došlo k chybě.

Poznámky pro uživatele aplikace Microsoft Access verze 2.0

Pomocí nedávno vydaná Microsoft Jet 2.0/Visual Basic 3.0 Compatibility Layer jazyka získat přístup k databázím Microsoft Access verze 2.0. Níže jsou některé poznámky pomoci zabezpečené verze 1.1 databázi převést do formátu Microsoft Access verze 2.0.

Pokud zabezpečené databáze verze 1.x zůstane zabezpečené zda otevřít s bude verze 1.x nebo 2.0. Však Microsoft Access verze 2.0 nelze změnit nebo přidat oprávnění v databázi, i správcem, dokud databáze převedena na verzi 2.0.

Při instalaci aplikace Microsoft Access verze 2.0 vytvoří vlastní soubor pracovní skupiny (SYSTEM.MDA). Pokud aplikace Microsoft Access verze 2.0 je nainstalována ve stejném adresáři jako verze 1.x, bude soubor verze 1.x SYSTEM.MDA přejmenován SYSTEM1X.MDA.

Chcete-li provést změny zabezpečení převedenou databázi, musíte použít verze 2.0 má shodné skupiny a uživatelé (a identické PID) jako původní SYSTEM.MDA SYSTEM.MDA.

Poznámka: PID (osobní ID) v aplikaci Microsoft Access verze 2.0 jsou ekvivalentní PIN (Personal čísla ID) v verze 1.x

Vytvoření Secure Workgroup:
  1. Nástroj 2.0 Administrátor vytvořit novou pracovní skupinu. Toto je soubor SYSTEM.MDA verze 2.0.
  2. Vytvořte znovu všechny uživatele a skupiny účtů pomocí stejné názvy a PID čísla, které byly použity v bude verze 1.x.
Převod zabezpečené 1.x databáze do formátu 2.0:

Poznámka: V zabezpečené pracovní skupiny pouze uživatelé s oprávnění Změna návrhu pro všechny objekty lze převést formát verze 1.x formát verze 2.0. Musíte také přiřadit oprávnění Změna návrhu databáze verze 1.x v bude verze 1.x pomocí pracovní skupiny verze 1.x.
  1. Zkontrolujte, zda nikdo nepoužívá databázi verze 1.x.
  2. Přihlaste se k Microsoft Access 2.0 jako člen skupiny Administrators, který není správce uživatele.
  3. Z nabídky Soubor zvolte příkaz Převést databázi.
  4. Vyberte databázi verze 1.x, který chcete převést. Budete vyzváni pro název verze 2.0 databáze.

    Poznámka: Příkaz Převést databázi vynutíte můžete zvolit nový název pro databázi. To umožňuje zachovat záložní kopii verze databáze 1.x jako po převedení databáze z verze 1.x na verzi 2.0 nemůže převést zpět do verze 1.x.
  5. Mají uživatelé připojit nové verze 2.0 pracovní skupiny (SYSTEM.MDA) pomocí nástroje Administrátor.

    Poznámka: Je možné také dosáhnout změnou souboru MSACC20.INI v adresáři systému Windows. V oddílu [Options] souboru změnit položku SystemDB přejděte na verzi 2.0 SYSTEM.MDA souboru. Oddílu [Options] souboru bude podobný níže uvedený příklad:
          [Options]
          SystemDB=<microsoft access path>\SYSTEM.MDA
    
    						

Klíč body k zapamatovat

  1. Bude pouze můžete vytvořit a upravit soubor SYSTEM.MDA.
  2. Soubor SYSTEM.MDA obsahuje jedinečný kód SID použity v databázi s oprávněními k řazení zjistit, kdo je modul, kteří pro aplikaci Microsoft Access k vynucení těchto oprávnění. SID získat zadáním stroj Microsoft Access s platného uživatele a heslo kombinaci, z které získá jedinečný kód SID, která stroj ukládá do paměti k vynucení zabezpečení otevřené databáze.
  3. Bude a jazyka třeba označenou umístění vypnutí souboru SYSTEM.MDA k získání položka databází, které mají zabezpečení a oprávnění implementována.
  4. Je k dispozici zadních vrátek jazyka aplikace programu Pokud heslo výchozího uživatele ve skupině Administrátoři (nazvaná Admin) není změněna z výchozí none ("").
  5. Pokud fráze "S Option OwnerAccess" je použit v dotazu SQL CreateQueryDef, CreateDynaset nebo CreateSnapshot metodu, musí existovat ukazatel souboru SYSTEM.MDA. I když používáte zadních vrátek (výchozí uživatele a heslo kombinaci Admin a "") a zřejmě není nutné při použití "S Option OwnerAccess" SYSTEM.MDA, v dotazu SQL, stroj, naleznete v souboru SYSTEM.MDA odpovídají SID vlastník (autor) databáze přihlášeného uživatele.
  6. Kombinace platné přihlašovací uživatele a heslo jsou uloženy v souboru SYSTEM.MDA ale oprávnění jsou uložena v databázi (MDB souboru) samotného. Jedinečný klíč (SID) je extrahován z SYSTEM.MDA pomocí platného uživatele a heslo kombinaci dodaná stroj Microsoft Access pomocí přihlašovacího dialogu v aplikaci Access nebo kód jazyka.

Vlastnosti

ID článku: 105990 - Poslední aktualizace: 23. ledna 2014 - Revize: 2.0
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Visual Basic 3.0 Professional Edition
  • Microsoft Visual Basic 3.0 Professional Edition
Klíčová slova: 
kbnosurvey kbarchive kbmt kbinfo KB105990 KbMtcs
Strojově přeložený článek
Důležité: Tento článek byl přeložen pomocí software společnosti Microsoft na strojový překlad, ne profesionálním překladatelem. Společnost Microsoft nabízí jak články přeložené překladatelem, tak články přeložené pomocí software na strojový překlad, takže všechny články ve Znalostní databázi (Knowledge Base) jsou dostupné v češtině. Překlad pomocí software na strojový překlad ale není bohužel vždy dokonalý. Obsahuje chyby ve skloňování slov, skladbě vět, nebo gramatice, podobně jako když cizinci dělají chyby při mluvení v češtině. Společnost Microsoft není právně zodpovědná za nepřesnosti, chyby nebo škody vzniklé chybami v překladu, nebo při použití nepřesně přeložených instrukcí v článku zákazníkem. Společnost Microsoft aktualizuje software na strojový překlad, aby byl počet chyb omezen na minimum.
Projděte si také anglickou verzi článku:105990

Dejte nám zpětnou vazbu

 

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