shared database

Hello peoples,

I need help with my project vs setting theft protection. db is split fronted and backend and I use protection with vba and here is my problem...
How I may lock/set security/protect this both shared database?

My problem:
If someone copy db to place it where is not function vba/macro then he may close security popup modal window and theft all data.
vba is set with password but when he want to get table, query, form etc. Is way how lock menu bar in ms access or set security in shared db with split db?

thnx for reply
Johny RamboAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

ste5anSenior DeveloperCommented:
First of all: There is no foolproof way to do it. Cause that's inherint to the system.

What do you want to protect?

When it's the data in the back-end, then you need/should to switch to SQL Server. Then the data could not be longer copied as a single file.

vba is set with password[..]
The only thing here is to deploy compiled ACCDE files (maybe also renamed to ACCDR). This will protect your IP in the code. But you cannot stop a sophisticated user from accessing linked tables.
Fabrice LambertFabrice LambertCommented:

This can be done by altering some properties of your database:
Dim db as DAO.Database
Set db = CurrentDb
db.Properties("StartupShowDBWindow") = False
db.Properties("StartupShowStatusBar") = False
db.Properties("AllowBuiltinToolbars") = False
db.Properties("AllowFullMenus") = False
db.Properties("AllowBreakIntoCode") = False
db.Properties("AllowSpecialKeys") = False
db.Properties("AllowBypassKey") = False
set db = Nothing

Open in new window

At least this will prevent "rookies" from going into "restricted areas" of your database.

PS: Allow yourself a backdoor, in case of troubles.
Johny RamboAuthor Commented:
I need protect all data in shared db as is possible for example exclusive mode...

Problem is that this db must be shared for all users, I can't set password for backend db where is all tables with data...

with the popup modal window form is not good solution for security... when is not working macro then user know close this modal window with default close button and then may makr everything in option from menu bar in file...

I have this popup modal window form set without close system default button from proerty options and when is function macro all is good... when is not working then show me close button on form again and it does not matter ig is disabled...
Acronis True Image 2019 just released!

Create a reliable backup. Make sure you always have dependable copies of your data so you can restore your entire system or individual files.

Johny RamboAuthor Commented:
security when is enabled macro is no problem, I need anything when is only security warning with enable macro or macro is disabled...
Fabrice LambertFabrice LambertCommented:
Problem is that this db must be shared for all users, I can't set password for backend db where is all tables with data...
Why  ?
Setting a password on the back-end is the first thing to do.
Else any other security is useless as one can link tables to your backend from another db and read / write data at will.
Johny RamboAuthor Commented:
I am tested it but my front-end shared db show me error that my back-end db with password is in exlusive mode... so I must give the backend db for shared mode and then is all function again :/
Fabrice LambertFabrice LambertCommented:
Upload your databases (front-end and back-end).
I suspect something else is in the work.
The back-end shouldn't be in exclusive mode.
Johny RamboAuthor Commented:
so if I have one db which is divided into two parts, in the first re forms, queries and reports and in the second re all tables then the second split db can't be in exclusive mode which re protected with password?

Is in this case frontend or backend? I thing that in the second db re all data and this db should be protect :/
Putting the database into exclusive mode doesn't add any protection.  It just makes the app inconvenient to use.  Access is a multi-user application out of the box and is perfectly able to control the sharing of data.  It is the Front End that can't be shared.  Each user MUST have his own personal copy of the FE.  They are all linked to the shared copy of the BE.  This keeps the users separate so they don't interfere with each other and still allows them to share the same set of data.

As the others have said, you really have no good way of protecting data in an Access database.  A user with bad intent can simply copy the database and bring it home to crack it at his leisure.  SQL Server (even the free SQL Server Express) version is far superior when it comes to data security.

Protections on the FE are usually to keep people from changing things they shouldn't.  You can lock down the FE sufficiently to keep out non professionals but even distributing as an .accde won't protect your code since there are services out there that can de-compile the compiled code and return an unlocked .accdb with code almost as good as the original.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Johny RamboAuthor Commented:
ok I have solution for first problem and both db re shared
1. delete connected tables in FE
2. open shared BE in exlusive mode
3. set encryption and close BE
4. import tables to FE, u must give your password
5. compact and repair

it's all

but how to set protection of FE if makro is disabled or not function?
You already accepted two conflicting answers and your proposed solution has nothing to do what what I suggested so you should not have awarded me ANYTHING.

Either reopen the question or start a new one.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Access

From novice to tech pro — start learning today.