Simplest way how to digitaly sign MS Access database for free to get rid off annoying security warning

StackOverflow https://stackoverflow.com/questions/22846070

Question

I think it's time to stop turning off the macro security thingy in the MS-Office. It seems to be more and more complicated with the newer office versions anyway. Instead, I'd like to assign a digital signature to the database application. I hope self-sign should help to get rid the security warning permanently. I suppose user can store the app certificate and won't be warned again (correct me if I'm wrong). What I'd like to know is:

1] What type of certificate I need to generate - what info should be included in the cert, what file types I need. What kind of certs is used for the apps in general - are these the same like for web servers, open-vpn, emails etc?

2] What is the simplest app for creating certificates and is there some verified on-line generators?

3] I'd like my apps to be certified forever. Can this be achieved?

4] How to assign the cert to the database app .mdb and .accdb? Does the MS ACCESS 2003 and 2007(10) handle the certs the same way?

If anyone went through this please share your experiences. And please not to many details and external links. The idea behind this question is to create a nice how-to sign a database without reading a tons of text.

Was it helpful?

Solution 2

Actually you can get rid of all Access security prompts in two ways.

One: set macro security = low. This is what I done for years and it works rather well.

Two: Simply ensure you add the folder where you place the database as a trusted folder location.

Doing EITHER of the above two removes all security prompts. So it is the WRONG question to worry and waste time about some digital signer when OH SO such easy OTHER options exist to remove the security prompts.

So don’t worry about digital certs etc.

Just add the folder as a trusted location and you should be ok. As noted another approach is to simply set macro security to low. Either approach removes all nag prompts and going down other roads is a big waste of time and resources.

OTHER TIPS

a) Depending on the scenario Disabling the security warnings and prompts may or may not be an option.

b) Disabling the security warnings and prompts in any event is not professional and would have to be done for every installation of the database.

To answer the OP's questions - 1)You would need to generate a code signing certificate (one where the intended use is set to code-signing) 2) I am not aware of any "simple" apps which do this. OpenSSL is a package which is far from simple but can do just about anything where certificates are concerned. 3)Once signed, a database will be signed for good. Every time the vba code changes, the database will need to be re-signed. 4) see below.

One thing to bear in mind where self generated certificates are concerned is that any certificate generated in this way will not be trusted - it will likely generate more security warnings and as Albert D Kallal says, is a "big waste of time".

The professional way of signing the VBA project in the database and thus removing the security warnings would be to purchase a code signing certificate from a certificate authority that is widely truted (e.g. Symantec / Thawte etc) However, these certificates can be very expensive.

Signing the VBA in an Access project is actually very easy once you have the certificate installed.

For MDB / MDE

  1. Press Alt-F11 to bring up the VBA editor.
  2. Press Alt-T for tools, then Alt-D for Digital Signature.
  3. Click on the Choose button and choose the required certificate (you may need to import your cert into the personal certificate store)
  4. Click OK to dismiss the Dialog and OK again.
  5. Press Alt-F and choose Close.

your database's VBA is now signed.

For accdb / accde 1. select the File Tab, 2. Select the "Save & Publish" menu item. 3. Under 'Advanced", double click on the "Package and Sign" entry. 4. Select your certificate and click OK 5. Choose where you wish to save the signed copy of the database.

your database's VBA is now signed.

Sorry, bu the method of packaging and signing does NOT sign the VBA code. It merely puts it into another file that is signed. You must extract the file and the extracted file is NOT signed. 8-( I am looking for how to sign the actual database...here is a link I found on MS site that backs me up after I have spent some time pulling out my hair!

https://support.microsoft.com/en-us/office/deploy-an-access-application-7bb4f2ba-30ee-458c-a673-102dc34bf14f?ui=en-us&rs=en-us&ad=us#bkmk_install

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top