Solved

protect access database tables

Posted on 2007-03-30
12
1,482 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
Comment Utility
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
Comment Utility
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
Comment Utility
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
 
LVL 2

Expert Comment

by:davidrares
Comment Utility
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
Comment Utility
ok... i just need a medium security solution... no tables visible, no easy shift-key hack...

thanks
0
 
LVL 2

Expert Comment

by:davidrares
Comment Utility
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
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 2

Expert Comment

by:davidrares
Comment Utility
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
Comment Utility
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
Comment Utility
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
Comment Utility
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
Comment Utility
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
Comment Utility
how can i run the function code? thanks
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

It took me quite some time to sort out all the different properties of combo and list boxes available from Visual Basic at run-time. Not that the documentation is lacking: the help pages are quite thorough and well written. The problem was rather wh…
In Debugging – Part 1, you learned the basics of the debugging process. You learned how to avoid bugs, as well as how to utilize the Immediate window in the debugging process. This article takes things to the next level by showing you how you can us…
Familiarize people with the process of utilizing SQL Server functions from within Microsoft Access. Microsoft Access is a very powerful client/server development tool. One of the SQL Server objects that you can interact with from within Microsoft Ac…
In Microsoft Access, learn how to “cascade” or have the displayed data of one combo control depend upon what’s entered in another. Base the dependent combo on a query for its row source: Add a reference to the first combo on the form as criteria i…

772 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

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now