Solved

protect access database tables

Posted on 2007-03-30
12
1,503 Views
Last Modified: 2008-01-09
I would like to protect my access database so that users would be able to use the forms, but not access the full tables behind the database... which is the best way to got? thanks
0
Comment
Question by:catalini
12 Comments
 
LVL 2

Expert Comment

by:davidrares
ID: 18822328
Hi,

as far as I know you cannot offer a full protection for tables.
But you can protect them both against the opening the database with the Shift key (let me know if you need help on this Shift key topic).

good luck,
Dave
0
 

Author Comment

by:catalini
ID: 18822335
i would like to avoid opening tables, user should use my forms to access data on the mdb file. How secure is this stop-shift key function? thanks!
0
 
LVL 2

Expert Comment

by:davidrares
ID: 18822338
Well you know you can open any database and view directly the Database window (the one where all MSA objects are visible) if you keep the Shift key pressed while opening. This provides a quick way to the users to access your tables.

What I can provide is a small piece of code or idea how to prevent the database to open when the Shift key is pressed. So, even with the Shift key pressed the application will not open, but will close itself instantly.

An experienced user with programming knowledge (or one which reads this discussion of ours ;-)) can write a different piece of code to enable this Shift Key opening again.

Dave
0
Ransomware: The New Cyber Threat & How to Stop It

This infographic explains ransomware, type of malware that blocks access to your files or your systems and holds them hostage until a ransom is paid. It also examines the different types of ransomware and explains what you can do to thwart this sinister online threat.  

 
LVL 2

Expert Comment

by:davidrares
ID: 18822342
And you can also hide the tables. But once again if the user changes his MSA settings to view also the hidden tables will be able to see and modify them.

But anyway it's just another small fence for the malicious users. ;)

Dave
0
 

Author Comment

by:catalini
ID: 18822346
ok... i just need a medium security solution... no tables visible, no easy shift-key hack...

thanks
0
 
LVL 2

Expert Comment

by:davidrares
ID: 18822360
Ok,

should i provide the Shift key solutions here?
I don't know if we are allowed to communicate otherwise, via some kind of private channel or smth... Maybe one EE Administrators can help...
0
 
LVL 2

Expert Comment

by:davidrares
ID: 18822377
Hiding the tables: just right click the tables and go to Properties. Select the "Hidden" check box. This is how you hide a table. I hope know how it's possible to view the hidden tables.

Dave
0
 
LVL 2

Expert Comment

by:davidrares
ID: 18822443
Hey catalini,

can I post the advice regarding the Shift key here directly? Is it ok for you?

Dave
0
 
LVL 15

Accepted Solution

by:
cquinn earned 250 total points
ID: 18822499
You can also set the tables as system tables - call them uSys<tablename> and they wont appear in the table list unless the "Show system tables" option is selected
0
 

Author Comment

by:catalini
ID: 18822549
yes david... how can i stop the shift trick?
0
 
LVL 84

Assisted Solution

by:Scott McDaniel (Microsoft Access MVP - EE MVE )
Scott McDaniel (Microsoft Access MVP - EE MVE ) earned 250 total points
ID: 18822555
You can implement User Level Security (ULS), implement RUn With Owner Permissions (RWOP) queries and then remove all permissions from tables. This is as good as it gets with Access (and even then, a dedicated hacker with a few bucks and a search engine can buy a program that will disable your security) but isn't really easy to implement.

Instead, a combination of startup options and disabling the Shift key, along with making your tables hidden, are generally enough to thwart most users. YOu can disable the shift key by using the code at this link:

http://www.mvps.org/access/modules/mdl0011.htm

From there, click Tools - Startup and clear the checkboxes for pretty much all the options except perhaps Display Status Bar. Build your own menubar and set it as the default. Make sure you have a startup form set

Next, follow david and cquinn's suggestion of hiding the tables.

Finally, if your database is split (and it DEFINITELY should be split into frontend/backend) then add a startup form to your backend with this code in the Load event of that form:

Sub Form_Load()
  Application.Quit
End Sub

This will immediately end the session as soon as that form loads (which is immediately). You'd want to also disable the ShiftKey on that database as well, but be aware that you'll need some method to re-enable it or you wouldn't be able to get back in. YOu can do this from a separate database if desired.

0
 

Author Comment

by:catalini
ID: 18822649
how can i run the function code? thanks
0

Featured Post

Ransomware: The New Cyber Threat & How to Stop It

This infographic explains ransomware, type of malware that blocks access to your files or your systems and holds them hostage until a ransom is paid. It also examines the different types of ransomware and explains what you can do to thwart this sinister online threat.  

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In the previous article, Using a Critera Form to Filter Records (http://www.experts-exchange.com/A_6069.html), the form was basically a data container storing user input, which queries and other database objects could read. The form had to remain op…
Overview: This article:       (a) explains one principle method to cross-reference invoice items in Quickbooks®       (b) explores the reasons one might need to cross-reference invoice items       (c) provides a sample process for creating a M…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
Familiarize people with the process of retrieving data from SQL Server using an Access pass-thru query. Microsoft Access is a very powerful client/server development tool. One of the ways that you can retrieve data from a SQL Server is by using a pa…

809 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question