Solved

Securing a 2007/2010 Client Server Application

Posted on 2013-01-25
4
259 Views
Last Modified: 2013-02-19
I have an Access application with a growing user population. The GUI sits on each user PC while the data resides on a server - with the customery table linking. The path to the database is stored in the global module so it can be called as needed when recordsets are used.

A Login form launches when a user starts the application and a valid user name/password combination is required for a successful login. All of the objects are hidden except for the Login form and user Access applications are set up not to show them.

Unfortunately, at this stage, we are relying on user ignorance to protect the application and the data. A curious, or malicious, user could change a few settings and see stuff we don't want them to see. I would like to accomplish the following:

1) Implement a password on the back end data. A user who tries to open that .accdb directly will need the password, but if they open it through the application, the password will be handed to the BE automatically.

2) Lock down the front end so that users can only see the things we want them to see.

If I had my druthers, I would be developing this in straight VB, but unfortunately the company in question wants it in Access.

Any suggestions or links to resources would be appreciated.
0
Comment
Question by:Buck_Beasom
4 Comments
 
LVL 47

Accepted Solution

by:
Dale Fye (Access MVP) earned 167 total points
ID: 38818489
Unfortunately, it is difficult to "secure" an Access BE.

You could put a startup (login) form in the backend, so that if someone attempts to open the backend directly, it would ask for a password and shut down if they don't have the correct password.  Then set the Use Access Special Keys property of the database to No (unchecked) to prevent users from bypassing the startup form.  This is not fool proof either, but it would take someone with enough knowledge (or Internet savy to do a search) to bypass this method.

If you truly need security, step your BE up to SQL Server or SQL Server Express (free).
0
 
LVL 84

Assisted Solution

by:Scott McDaniel (Microsoft Access MVP - EE MVE )
Scott McDaniel (Microsoft Access MVP - EE MVE ) earned 167 total points
ID: 38818511
Regarding the FE, you should be deploying a .accde (or .mde) file. This will effectively disable the user from opening the form in design view, which can stop design mods to Forms, Report and Modules. Users could still modify table and query DATA (and some design), however, so be aware of that.

As fyed said, you should also remove the Shift key bypass for the FE. This provides another level of security, but as fyed mentions there is really no way to fully secure this. If the client wants a truly secure app, they'll need to move to a more secure platform for both the UI and the data.
0
 
LVL 77

Assisted Solution

by:peter57r
peter57r earned 166 total points
ID: 38818544
The other significant step you can take in securing the application (as opposed to the data) is to convert the front-end into an accde file.

This removes the capability to make design changes to forms, reports and code.

I notice your question title refers to A2007/2010.  If you are not already aware, then note that the chances of running a non-trivial A2010 application in A2007 are pretty slim.
0
 

Author Closing Comment

by:Buck_Beasom
ID: 38905151
Since all of these are helpful (and this question has been sitting open for a while) I am splitting up the points.

Thanks to all.
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

QuickBooks® has a great invoice interface that we were happy with for a while but that changed in 2001 through no fault of Intuit®. Our industry's unit names are dictated by RUS: the Rural Utilities Services division of USDA. Contracts contain un…
Describes a method of obtaining an object variable to an already running instance of Microsoft Access so that it can be controlled via automation.
What’s inside an Access Desktop Database. Will look at the basic interface, Navigation Pane (Database Container), Tables, Queries, Forms, Report, Macro’s, and VBA code.
With Microsoft Access, learn how to specify relationships between tables and set various options on the relationship. Add the tables: Create the relationship: Decide if you’re going to set referential integrity: Decide if you want cascade upda…

707 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

17 Experts available now in Live!

Get 1:1 Help Now