Beveiliging voor Eindgebruiker

Status
Niet open voor verdere reacties.

jaspervdh

Gebruiker
Lid geworden
29 nov 2016
Berichten
53
Hallo,

Ik heb weer een nieuwe vraag dus een nieuw topic.

Maar dit keer is het denk een handig topic voor meer dan alleen mezelf, had ook gedacht dat dit topic wel zou bestaan maar kan hem niet vinden.


[vraag1] Ik heb dus een Access Database gemaakt, hij is dusdanig gebruiksklaar dat de gebruikers alleen de knoppen en tekstvelden/keuzelijsten/selectievakken etc hoeven te gebruiken. De rest is dus niet nodig. Denk aan Design Modus, Record navigatie (het systeem moet het wel kunnen, alleen mag de gebruiker het dus niet handmatig doen), überhaupt de tabellen openen in het navigatie menu, opties in het lint etc.

Maar hoe kan ik het dusdanig dicht timmeren dat dit dus ook niet meer mogelijk is?

De database moet door meerdere gebruikers op verschillende computers gebruikt worden. ([vraag2] Moet ik hiervoor de database nog op een bepaalde manier opslaan of kan ik hem gewoon op een share zetten en dat iedereen die verbinding heeft met het netwerk erbij kan)
 
Bestudeer eens Front-end, Back-end in access, daar is het antwoord op beide vragen te vinden.
 
Beetje kort door de bocht dat antwoord, maar in beginsel wel het juiste pad. Je moet dus je db splitsen in een backend waar de tabellen in staan, eventueel wat onderhoudsqueries etc, en een frontend waarin je de tabellen koppelt en waarin de gebruikersqueries, formulieren en rapporten staan. Die voorkant kun je redelijk dichtspijkeren, en opslaan als een accde bestand. Daarin kun je verder helemaal niks aanpassen. Dat accde bestand distribueer je dan onder je gebruikers.
Het maakt niet uit waar de backend staat, zolang de locatie maar voor iedereen hetzelfde is en door iedereen te benaderen.
Als je alles in één db hebt gemaakt, en dat zal wel, dan is het makkelijker om eerst een kopie van de complete db te maken, de twee exemplaren te hernoemen naar Database_BE en Database_FE (mag uiteraard een eigen naam zijn, boeit niet) en de backend op de plek te zetten waar je hem hebben wilt. Vervolgens gooi je in de frontend alle tabellen weg, ga je naar <Externe gegevens>, klik je op de knop <Access> en kies je eerst de optie <Koppelen aan de gegevensbron...> Vervolgens blader je naar de backend map, kies je de backend database en selecteer je alle tabellen. Als dat klaar is, kun je de frontend gelijk gebruiken, en zul je geen verschil merken met de originele database (die je natuurlijk ook nog achter de hand hebt gehouden ;) ).

In de Frontend stel je vervolgens alle eigenschappen in zoals je ze hebben wilt, met alle rechten etc. en als dat klaar is genereer je de accde vanuit het menu <Opslaan en publiceren>. Dat is het wel zo'n beetje in korte lijnen.
 
Dit deel was erg duidelijk. Dit is natuurlijk dan ook gelukt.

Nu neem ik aan dat ik de Database_Fe moet dicht spijkeren. Maar hoe precies? Weet alleen hoe ik de Objecten lijst kan verbergen, maar die kunnen je zo weer weergeven. Voor de rest weet ik het niet.
 
Zoals ik al schreef: als de db klaar is en niet meer veranderd hoeft te worden, maak je er een accde bestand van. Dan kan de gebruiker echt niets meer veranderen.
 
Je kunt in ontwerp modus, en je kunt alle tabellen openen die je wilt omdat je gewoon bij de instellingen kan. En dus ook bij de wachtwoorden. (welleswaar niet aanpassen, maar wel inzien)
 
In een accde bestand? Knappe jongen dat je dat voor elkaar krijgt. Die db wil ik wel eens zien...
 
Je kunt in de tabel met de wachtwoorden voor het type wachtword kiezen, dan zie je enkel sterretjes. De gebruiker die tot daar geraakt kan dan het wachtwoord niet aflezen maar wel wijzigen natuurlijk.
Aangezien beveiliging op gebruikersniveau niet meer kan moet je dus iets maken met een gekoppelde frontend in accde, bij het openen laat je de gebruikers inloggen via een pop-up formulierte om hen te onderscheiden, eventueel een gebruikersniveau daarbij toekennen zodat je kunt bepalen wie wat wel of niet kan zien, uitvoeren, etc...en daarbij laat je ook via code ook het navigatiepaneel automatisch verbergen samen met het lint. Dan ben je al een heel stuk op weg. Vergeet niet om bij een accde bij elke procedure foutafhandeling bij te voegen.
Enige manier om dan nog de tabellen te benaderen is via importeren vanuit een andere database, maar naar het schijnt kan je dat niet beletten.
 
@octafish Ik het gewoon het bestandstype veranderd. Maar als ik hem nu open kan ik nog gewoon alles doen. Weet niet of dit de verkeerde manier is?

@JohanRVT Ik heb wel een formuliertje gemaakt waarmee je moet inloggen. Maar de rest is ook benaderbaar als je bij het overzicht kan zonder in te loggen.
---
Kan momenteel niet bij het bestand omdat de server waar ik het op maak momenteel uit de lucht is wegens onderhoud. Hij gaat pas de 3e week van januari week online. Dan kan ik er weer bij.
 
Ik het gewoon het bestandstype veranderd. Maar als ik hem nu open kan ik nog gewoon alles doen. Weet niet of dit de verkeerde manier is?
Wat denk je zelf? Ik geef nota bene in bericht #3 aan hoe je het wél moet doen!
 
Jasper, ik ben bezig met sloopwerk iets te maken van de vorige database waar al die dingen in verweven zitten, komt toch nog wel 's ergens van pas denk ik.
 
Hallo, Kan er weer bij dus hier ben ik weer met mijn vervelende vragen.

Oh, sorry verkeerd gelezen denk ik. Ik heb de knop waar ik hem moet converten naar accde gevonden. Alleen zodra ik erop druk krijg ik de foutmelding: Kan het accde, Mde of ade-bestand niet maken. En als ik op help weergeven druk staat er:

Code:
Deze fout heeft meestal te maken met het compileren van een grote database naar een MDE-bestand. 
Vanwege de methode die wordt gebruikt voor het compileren van de database, wordt er een aanzienlijk aantal verwijzingen naar tabel-id's voor iedere tabel gemaakt. 
De Access-database-engine kan maximaal 2048 open tabel-id's per keer maken. 
Als de database een groot aantal objecten bevat (tabellen, macro's, formulieren, rapporten, enzovoort) en als MDE-bestand wordt geëxporteerd, kan deze limiet worden overschreden.

Er bestaat geen nauwkeurige methode voor het schatten van het aantal tabel-id's dat wordt gebruikt door de Access-database-engine tijdens het compileren van een database als een MDE. 
Elke VBA-module en elk formulier maakt echter gebruik van een tabel-id. 
Als een database dus 500 formulieren bevat en de eigenschap HasModule van elk formulier is ingesteld op Ja, worden er wel 1000 tabel-id's gebruikt.

Nu heb ik wat gegoogled en kwam ik bij de oplossing dat ik het moet comprimeren. Nou dat heb ik gedaan, krijg daar ook geen foutmeldingen. Maar als ik de accde dan weer wil maken krijg ik gewoon weer een foutmelding.
 
Comprimeren is maar één stap; je zult de db ook moeten compileren. Klinkt, als, maar is wat anders :). In het VBA venster (<Alt>+<F11>) ga je dan naar <Foutopsporing>, <db compileren>. Dit mag geen fouten opleveren, want anders kun je geen accde maken.
 
Het is gelukt, maar ik kan steeds bij de huidige database instellingen, dus de navigatiedeelvenster aanzetten en dus alle tabellen in zien, ook die van de wachtwoorden enzo. Ook kan ik nog query's, tabellen, macro's maken en rommelen met de verbnding types.
 
Heb je er wel een AutoKeys macro ingezet? Overigens lijkt het mij stug; in een accde bestand kan je helemaal niks aanpassen.
 
in een accde bestand kan je helemaal niks aanpassen.
Deze bewering is onjuist! In een accde-bestand wordt de VBA-code gecompileerd opgeslagen en is niet meer in te zien en te wijzigen. Ook kun je in een accde-bestand formulieren en rapporten niet meer wijzigen. Maar tabellen en queries bijvoorbeeld kun je in accde-bestand probleemloos inzien, wijzigen, aanmaken en verwijderen.
 
Klopt, ik was iets te voorbarig. Mijn antwoord was gebaseerd op de oorspronkelijke vraag van TS, waarbij hij wil voorkomen dat er allerlei dingen in de formulieren etc. wordt aangepast. En dan klopt mijn antwoord wel. En in een FE_BE versie kun je ook niks veranderen aan de tabellen, dus dat is dan ook afgedekt. Een gebruiker die er zelf een zooitje van maakt doordat hij ondanks alle beperkingen toch koppelingen weggooit.... Ach, lijkt mij een prima moment om er achter te komen dat de db dan niet meer werkt, en de betreffende persoon dan toch eens vriendelijk vragen waarom hij/zij dat nodig vond....
 
Nee ik heb geen Autokey Macro.
tenminste niet om de boel dicht te timmeren.
 
Daarmee kun je bijvoorbeeld de F11 toets uitschakelen, zodat de gebruiker zelf niet naar het navigatievenster kan.
 
Ah, maar je kon dat gewoon aanzetten dmv de instellingen omdat je daar nog bij kon. Maar ik heb iets gevonden voor een USysRibbons Tabel met de code:
Code:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
	<ribbon startFromScratch="true"></ribbon>
	<backstage>
		<button idMso="ApplicationOptionsDialog" visible="false"/>
	</backstage>
</customUI>

Op het moment dat ik alle instellingen uit gooi en dat ding aan krijg ik dit.
paint.png

Ziet er op eerste blik goed uit.
Alleen heb ik er nog 2 dingen over. Zodra ik inlog zie je links wel de balk met pijl om naar de tabelen te gaan, kan die weg, hij doet niks maar vind hem lelijk.
En tweede hoe betrouwbaar is dit?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan