Solved

protect access database tables

Posted on 2007-03-30
12
1,512 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
The Eight Noble Truths of Backup and Recovery

How can IT departments tackle the challenges of a Big Data world? This white paper provides a roadmap to success and helps companies ensure that all their data is safe and secure, no matter if it resides on-premise with physical or virtual machines or in the cloud.

 
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

Free Tool: Postgres Monitoring System

A PHP and Perl based system to collect and display usage statistics from PostgreSQL databases.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Regardless of which version on MS Access you are using, one of the harder data-entry forms to create is one where most data from previous entries needs to be appended to new records, especially when there are numerous fields and records involved.  W…
I see at least one EE question a week that pertains to using temporary tables in MS Access.  But surprisingly, I was unable to find a single article devoted solely to this topic. I don’t intend to describe all of the uses of temporary tables in t…
Learn how to number pages in an Access report over each group. Activate two pass printing by referencing the pages property: Add code to the Page Footers OnFormat event to capture the pages as there occur for each group. Use the pages property to …
Using Microsoft Access, learn some simple rules for how to construct tables in a relational database. Split up all multi-value fields into single values: Split up fields that belong to other things into separate tables: Make sure that all record…

830 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