Select the product you need help with
INFO: Hoe Visual Basic 3.0 handelt de beveiliging in Microsoft Access ingesteldArtikel ID: 105990 - Bekijk de producten waarop dit artikel van toepassing is. Op deze paginaSamenvattingVisual Basic versie 3.0 bevat Microsoft Access database engine.
Visual Basic bevat de syntaxis om een Microsoft Access-database bewerken
in bijna elke manier kunnen die Microsoft Access. Een belangrijke uitzondering is in
het gebied van beveiliging. Alleen Microsoft Access kunt instellen of wijzigen van de beveiliging
opties (zoals id's en wachtwoorden voor aanmelding) en instellen of wijzigen
machtigingen voor specifieke objecten in een bepaalde database. Visual Basic versie 3.0 bevat twee instructies (SetDataAccessOption en SetDefaultWorkspace) die voldoen aan een Visual Basic-toepassing toestaan het beveiligingsmechanisme waarmee Microsoft Access wordt geïmplementeerd en aanmelden met Visual Basic-code. U kunt de machtigingen krijgen via deze instructies toegekend aan een bepaalde gebruiker. Dit artikel wordt uitgelegd van de mechanismen van de beveiliging van Microsoft Access die van toepassing op de Visual Basic-versie 3.0 en Visual Basic-programmeur. De volledige beveiligingsmogelijkheden van Microsoft Access zijn buiten het bestek van in dit artikel. Voor een volledige beschrijving van de beveiligingsmogelijkheden van de van Microsoft Openen, raadpleegt u het volgende Knowledge Base-artikel: 122036
(http://support.microsoft.com/kb/122036/EN-US/
)
WX1051: De beveiligingswizard en het witboek bijlage Opmerking 2.0Meer informatieMicrosoft-beveiliging is geïmplementeerd in twee delen:
Elke gebruiker of groep heeft unieke beveiligings-ID (SID)In Microsoft Access heeft elke gebruiker en groep een beveiligings-ID (SID). De SID is een binaire tekenreeks die de unieke identificatie van de gebruiker of groep. Wanneer een gebruiker Logboeken op of vanuit het dialoogvenster Aanmelden in Microsoft Access of code in Visual Basic (geïllustreerde later in dit artikel), Microsoft Access Engine wordt gelezen uit de tabel MSysAccounts van het systeem.MDA-database. Dit alleen door Microsoft Access database gemaakt en een nieuwe (lege) één gemaakt als het oorspronkelijke bestand is verwijderd.Opmerking: Als het oorspronkelijke systeem.MDA per ongeluk is verwijderd, alle unieke SID's gaan verloren. Daarom beveiligd alle mogelijkheid toegang te krijgen tot databases is ook verloren. Daarom is het verstandig een back-up van zowel de database en het systeem.MDA-bestand in plaats van wanneer de machtigingen zijn ingesteld voor de database. Bij het aanmelden (niet-hoofdlettergevoelig) op de naam van de gebruiker door de gebruiker worden geleverd en wachtwoord (hoofdlettergevoelig). Als de gebruikersnaam en het wachtwoord correct zijn, de SID van de gebruiker opgehaald en opgeslagen in een interne structuur van de Engine. Het wachtwoord wordt alleen voor het valideren van de gebruiker gebruikt. Vanaf dit punt, Zodra de gebruiker een geverifieerde gebruiker wordt, heeft het wachtwoord geen effect op beveiliging. Hier is een belangrijk punt voor het gedrag van Visual Basic. Standaard de engine van Microsoft Access probeert te valideren gebruiker en wachtwoord Admin en "" respectievelijk. Visual Basic versie 3.0 wordt zonder enige code Deze toetsencombinatie verzenden naar de engine van Microsoft Access standaard. Dit betekent dat, zelfs zonder het gebruik van de Visual Basic-beveiliging instructies in Visual Basic-programma krijgt toelating tot de database Als de gebruiker 'Admin' van de groep Administrators niet heeft het wachtwoord gewijzigd geen standaard (""). Nadat u bent aangemeld, wordt de SID van de gebruiker opgehaald. Deze SID wordt gebruikt voor alle verdere bewerkingen binnen de engine van Microsoft Access. De SID wordt opgeslagen in het systeem.MDA-DatabaseDe SID wordt opgeslagen in de database zelf. Daarom alle machtigingen toegekend worden aan een bepaalde gebruiker of groep ook opgeslagen in de database de unieke SID is gekoppeld.Hiermee een ander belangrijk punt voor gedrag van Visual Basic. De Visual Basic-programma zal krijgt toegang tot de database en hebben volledige machtigingen negeren het beveiligingsmechanisme van Microsoft Access als seeming het volgende geldt:
De lijst van de objecttypen in Microsoft Access zijn: tabel, Query, formulier, Rapport-, Macro- en Module. Van deze zijn alleen de eerste twee toegankelijk via Visual Basic-code, zodat de anderen kunnen worden weggelaten uit deze uitleg. De volgende twee secties wordt uitgelegd in elk van de twee Visual Basic security- Verwante instructies (SetDataAccessOption en SetDefaultWorkspace). De twee instructies zijn ontworpen voor een keuze van het systeem.MDA-bestanden en aanmelden posten naar een Microsoft Access-database met beveiliging van Microsoft Toegang. Na deze twee secties is een sectie die betrekking twee heeft instructies voor het gedrag van de engine van Microsoft Access met betrekking tot beveiliging. --SetDataAccessOption syntaxis en gedragSetDataAccessOption heeft de volgende parameters:SetDataAccessOption option, value option is a numeric value with only one legal value (1). Bijvoorbeeld: In de DATACONS.TXT-bestand in de hoofdmap van de map \VB een constante is voor deze waarde gedefinieerd: SetDataAccessOption stelt de naam en het pad van de toepassing initialisatie (.Ini-) bestand. Van de toepassing.INI-bestand heeft alleen effect Wanneer SetDataAccessOption wordt gebruikt vóór is de data access-functionaliteit geladen en geïnitialiseerd. Nadat u toegang tot gegevens is geïnitialiseerd, deze instelling kan niet worden gewijzigd zonder eerst de toepassing af. De waarde is een een tekenreeksexpressie. Voor de optie DB_OPTIONINIPATH het waardeargument bevat een tekenreeksexpressie die het pad en de naam van uw initialisatie van de toepassing (.Ini-) bestand. Initialisatiebestanden zijn meestal in de Windows-map van de gebruiker opgeslagen en hebben dezelfde naam als de uitvoerbaar bestand, maar met een.Extensie INI. Gebruik deze instructie alleen als uw het initialisatiebestand van de toepassing heeft een andere naam of in een map andere dan de Windows-map. De instructie SetDataAccessOption is niet nodig wanneer u de Visual Basic-project in de VB.EXE-omgeving als de VB.INI-bestand (in de Windows Directory) bevat de volgende regels: [Opties] SystemDB = T:\ACCESS\SYSTEM.MDA UtilityDB = T:\ACCESS\UTILITY.MDA Opmerking: de werkelijke locatie van het systeem.MDA niet significant is verstrekt Microsoft Access en Visual Basic hebt u een vermelding aan te wijzen de SYSTEEM.MDA delen. De instructie SetDataAccessOption is niet vereist als de toepassing.EXE-bestand heeft een eigen.INI-bestand in de Windows en de.EXE en.INI-bestanden hebben dezelfde naam. --SetDefaultWorkspace syntaxis en gedragSetDefaultWorkspace heeft de volgende parameters:SetDefaultWorkspace username, password Als deze instructie is uitgevoerd, stuurt Visual Basic het equivalent van de volgende regel om de Microsoft Access database-engine die is opgenomen met Visual Basic: SetDefaultWorkspace "Admin" , "" Deze instructie is een geldige SID te verkrijgen en te krijgen alle tabellen en Query objecten in de database. Relatie tussen Visual Basic en Microsoft Access-beveiligingBegrijpen van de relatie tussen Visual Basic en Microsoft Access beveiliging, moet u het beveiligingsmechanisme dat Microsoft Access kennen. Hier is een gedetailleerde uitleg aan het Visual Basic programmeurs die Microsoft Access niet veel gebruikt. Er is een hiërarchie van machtigingen in Microsoft Access. Op het hoogste niveau Er zijn groepen. Deel uitmaakt van een bepaalde groep gebruikers zijn. Naar machtigingen voor bepaalde gebruikers selectief moeten alle machtigingen eerst worden uitgeschakeld of verwijderd uit de groep gebruikers. Alleen klikt en vervolgens machtigingen worden verleend of ingetrokken voor individuele gebruikers.Expliciete machtigingen voor een individuele gebruiker machtigingen genoemd. Machtigingen voor de groep met de gebruikersaccount worden genoemd. Impliciete machtigingen. Impliciete machtigingen hebben voorrang op de expliciete machtigingen. U kunt het menu Beveiliging stelt u machtigingen in Microsoft Access nadat een database is geopend en de gebruiker zich heeft aangemeld. Van de beveiliging menu, kies machtigingen toewijzen van machtigingen voor elk object in de de database in Visual Basic alleen tabellen en Query-objecten betekent. Als er een groep in het Microsoft Access-database met de naam bijvoorbeeld Analisten met de gebruikers-Bob en Susan en u wilt Bob te beperken Alleen gegevens lezen en Suzan volledige machtigingen verlenen, als volgt:
Hier zijn verschillende scenario's waarmee de relatie tussen Visual Basic en Microsoft Access-beveiliging: SCENARIO 1: In dit geval is er geen verwijzing naar de locatie van de SYSTEEM.MDA-bestand. Windows-engine van Microsoft Access en worden niet vinden de.INI-bestand met de sectie [Options] eerder in dit artikel worden vermeld. Daarom is het systeem.MDA genegeerd en Visual Basic wordt standaard de Standaard combinatie van gebruiker en wachtwoord ('Admin', ' '). Echter, eerder het standaardwachtwoord voor de gebruiker Admin is veranderd in iets anders dan "". Daarnaast alle machtigingen voor de groep Administrators zijn ingetrokken en de Gebruiker 'Admin' in de groep Administrators. Daarom de volgende Visual Basic Fout in punt 2 Kan niet worden gelezen; geen leesrechten voor tabel of query ' f)) " U kunt de achterdeur in Visual Basic en Visual Basic hebt gesloten de toepassing probeert te omzeilen de aanmeldingen in het systeem.MDA-bestand. SCENARIO 2: In dit geval omdat het aanroepen van de SetDefaultWorkspace instructie zonder dat u de aanwijzer op het systeem.MDA-bestand, de Visual Basic engine van Microsoft Access hunts voor het systeem.MDA-bestand en niet het zoeken, geeft de volgende fout op het punt 0 in de code: Kan bestand niet vinden ' systeem.MDA' Opmerking: De fouten die in beide scenario's 1 en 2 optreden zijn hetzelfde als zou optreden als het systeem.MDA-bestand is verplaatst, hernoemd of verwijderd. SCENARIO 3: In dit geval u vertellen Microsoft Access Visual Basic Indien de motor het systeem.MDA-bestand zich bevindt, maar een gebruiker niet opgeeft en wachtwoord combinatie. Daarom nogmaals, levert Visual Basic de enige gebruiker en wachtwoord combinatie bekend ('Admin', ' "), die niet langer een geldig combinatie omdat u een wachtwoord hebt toegevoegd aan de gebruikersaccount beheerder. Als een resultaat, Visual Basic geeft op 1 punt in de code de volgende fout: Geen geldige account of wachtwoord. SCENARIO 4: In dit geval u beide parameters opgeven correct. Daarom omdat gaf Bob machtiging 'Gegevens lezen' en 'lezen Definities"om de Visual Basic-Microsoft Access-engine te lezen, de Visual Basic-toepassing worden afgedrukt voor de eerste twee velden in de eerste record van de tabel met de naam TestTbl. Als u de vier scenario's met de gebruiker Suzan herhaald, zou zijn de hetzelfde. Echter Susan verder gaan en de tabelstructuur van de wijzigen en de ook gegevens. Denk eraan dat u eerst de groep analisten geselecteerd en ingetrokken alle machtigingen. U toegevoegd terug alle machtigingen aan Susan, maar alleen lezen Gegevens en definities lezen zijn naar Bob toegevoegd. Opmerking: De groep beheerders heeft een speciale betekenis voor de beveiliging. Dit geldt voor elke gebruiker in die groep. De groep beheerders-SID wordt opgeslagen in het systeem.MDA wanneer een database wordt gemaakt. Als gevolg hiervan, de groep Domeinadministrators hebben altijd de machtigingen op alle objecten in te wijzigen de database. Met deze machtiging kan niet worden ingetrokken door iedereen. Dit machtiging blijft zelfs wanneer alle machtigingen zijn ingetrokken vanaf de Beheerdersgroep en wordt niet weergegeven in het dialoogvenster machtigingen. Dit is een andere reden om een back-up houden en bijhouden welk systeem.MDA is in gebruiken wanneer de database is gemaakt. Met OwnerAccess Option in een SQL-QueryEen laatste punt van de mogelijke verwarring draait rond het gebruik van de volgende zin in een SQL-query: ... With OwnerAccess Option Bekijk bijvoorbeeld deze code: Deze code resulteert in deze fout: Ongeldige Database-ID. Dit komt omdat OwnerAccess naar de eigenaar van de database verwijst. De eigenaar is de maker van de database. Met andere woorden verwijst OwnerAccess naar eigenaar van de gebruiker en wachtwoord combinatie (unieke SID) die is opgeslagen in de database (BD1.MDB in dit geval). Echter, de code bevat de twee instructies nodig om te verwijzen naar het systeem.MDA-bestand van een beveiligde de database. Werkelijk, in dit geval alleen de instructie SetDefaultWorkspace is essentieel als het gecompileerde.EXE-bestand van.INI-bestand met een geldige De sectie [options], is de Windows-map. De code gebruikt de backdoor. Deze unieke SID van niet heeft verstrekt de de eigenaar van de database engine, zodat de engine niet de standaardnaam weten combinatie en wachtwoord (Admin, "") van de gebruiker is eigenaar van de database. Zelfs als dat blijkt de gebruiker Admin is de eigenaar van de database zonder Lees het systeem.MDA-bestand de engine niet controleren of dit feit dus geeft de fout. Opmerkingen voor gebruikers van Microsoft Access versie 2.0Met behulp van de onlangs uitgebrachte Microsoft Jet 2.0/Visual Basic 3.0 Laag, Visual Basic toegang tot Microsoft Access versie 2.0-databases. Hieronder worden enkele notities kunt u een beveiligde converteren versie 1.1-database in Microsoft Access versie 2.0-indeling.Als u een database uit versie 1.x is beveiligd, blijft beveiligd of u openen met Microsoft Access versie 1.x of 2.0. Echter, Microsoft Access versie 2.0 kan niet worden gebruikt om machtigingen in de database toevoegen of wijzigen zelfs door de beheerder, totdat de database is geconverteerd naar versie 2.0. Wanneer u Microsoft Access versie 2.0 installeert, wordt de eigen werkgroep bestand (SYSTEM.MDA). Als Microsoft Access versie 2.0 is geïnstalleerd de dezelfde map als het systeem van versie 1.x van versie 1.x.MDA-bestand SYSTEM1X gewijzigd.MDA. Om wijzigingen in de beveiliging van een geconverteerde database, moet u een versie 2.0 systeem.MDA met identieke groepen en gebruikers (en identieke PID's) als het oorspronkelijke systeem.MDA. Opmerking: PID (persoonlijke id) in Microsoft Access versie 2.0 zijn de equivalent van de PIN (persoonlijke id-nummers) in versie 1.x Maken van een beveiligde werkgroep:
Opmerking: In een beveiligde werkgroep, alleen gebruikers met machtigingen Ontwerp wijzigen alle objecten kunnen een versie 1.x-indeling converteren naar versie 2.0-indeling. Ook moet u de machtigingen Ontwerp wijzigen toewijzen aan de database versie 1.x in Microsoft Access versie 1.x met versie 1.x-werkgroep.
Belangrijke punten om te onthouden
EigenschappenArtikel ID: 105990 - Laatste beoordeling: vrijdag 6 juli 2012 - Wijziging: 4.0
Automatische vertaling BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten. De Engelstalige versie van dit artikel is de volgende: 105990
(http://support.microsoft.com/kb/105990/en-us/
)
|





Naar boven








