Free Lessons
Courses
Seminars
TechHelp
Fast Tips
Templates
Topic Index
Forum
ABCD
 
Home   Courses   TechHelp   Help   Contact   Merch   Join   Order   Logon   Forums   
 
Back to Access SQL Server Online    Comments List
Upload Images   @Reply   Bookmark    Link   Email   Next Unseen 
Security Enhancement for Access SQL Server Seminar
Richard Rost 
          
14 months ago
If you purchased my Access SQL Online Server Seminar, you already know how to connect your Access database to an online SQL Server so people all over the world can use it. This works great, and I still stand behind the method. However, there's a security concern I want to address more deeply.

In the seminar (I believe it's Lesson 5), I show you how to connect to SQL Server using linked tables and how to dynamically relink them at startup, then unlink them afterward. This method is fine if you're working with a small, trusted group of people who you don't suspect are world-class hackers.

Here's the problem:

When you use linked tables, Microsoft stores the SQL Server password in the connection string. They didn't hide it (brilliant, right?). So while it's not obvious or easily found, someone who really knows their way around Access (like me) can extract it. If someone got a hold of your front-end, they could potentially find your database credentials and wreak havoc.

I also cover how to use ADO recordsets to get data without linking tables, which is safer. But that method doesn't work as well when you want to use Access forms, combo boxes, or reports. So it's limited.

While I've been dealing with this dental nightmare over the past week and couldn't record videos, I've been working on something new. I built a prototype database that doesn't use linked tables at all. No local tables either. Everything is done in memory.

Here's how it works:

When you open a form, it binds to an ADO recordset directly in memory. The recordset is filled with data from SQL Server. You work with the data like you would in a regular bound form, but there's no table or linked table involved. For reports and combo boxes, I generate local temp tables on demand. For example, a customer list might only need to update once daily.

This keeps your SQL Server credentials out of linked tables and makes them much harder to get at. Right now, the login info lives in the code, which is better, but still not bulletproof. Someone with a sector editor or decompiler could dig them out.

So here's where it gets really cool...

I'm working on the next level: no credentials stored anywhere in the database. Not in code. Not in a table. Nowhere.

Instead, when a user logs in, the front-end sends their username and password to a secure website (I'll show you how to build this too, or I might make it a service available on my website). That site validates the login, then sends back an encrypted packet with the SQL Server credentials. The front-end decrypts it in memory and uses it to connect. No trace of it is left behind.

That's about as secure as you can get with Access. Even I wouldn't know how to steal the credentials out of system memory without some serious low-level hacking tools and knowledge.

So before I finish turning this into a full seminar or release the finished database template with videos and documentation, I want to gauge interest.

Would you be interested in purchasing a copy of this advanced version? It'll be an add-on to the SQL Server seminar, not a free update, but priced fairly. I did spend a lot of time on this one figuring it out.

Let me know. If enough people are interested, I'll move it up the priority list.
Sami Shamma  @Reply  
             
14 months ago
Yes Please
Richard Rost OP  @Reply  
          
14 months ago
I knew you'd want it, Sami. :)
Richard Rost OP  @Reply  
          
14 months ago
Oh, and I left out the best part... I also built in a migration tool of my own because I don't like the one that Microsoft has. So you can take a table, click one button to recreate the table on your SQL server, click another button to copy all the records up, and then click another button to delete the table locally. And the same thing will turn queries into views. That's how this whole thing started. I wanted to build my own migration tool.
Sami Shamma  @Reply  
             
14 months ago
I am literally salivating.
Richard Rost OP  @Reply  
          
14 months ago
Oh, and once the tables are up on SQL Server, you can click another button to take a form and very easily convert it over to use the new system. It adds the right bit of code to your form to have it get its data from the ADO record set on the SQL Server now instead of being a bound form to a local table.
Sami Shamma  @Reply  
             
14 months ago
My mind is wondering about how much faster or slower it would be than the traditional method. A benchmark will be great.
Richard Rost OP  @Reply  
          
14 months ago
It's probably a little slower since my routine creates the table and then when it copies the record up it does an SQL insert so it can make sure it pushes the auto-number in, then it writes the rest of the data via a record set loop. So if you've got a lot of data to upload, it will take a little while, but I wanted to emphasize stability over speed. Since it's only something that you're going to do once and then never have to do it again for that table at least I wanted to just make sure that it worked properly. For a really big table, it might be something that you just click it and go to lunch and come back.
Matt Hall  @Reply  
           
14 months ago
I am also interested, since I will be heading down the Microsoft SQL path in the next year or so.
Juan Rivera  @Reply  
            
14 months ago
WOW I had to put down my Java.  Yes Yes Yes.  Make so!
Ray White  @Reply  
       
14 months ago
Sure bring it on...
Doug Sandilands  @Reply  
      
14 months ago
Count me in! Sounds perfect - particularly as I'm begging to share multiple Access / SQL Server databases among several organizations.
Hope the dental drama is over soon. Sounds awful.
Daniel Noland  @Reply  
   
14 months ago
Yes, I am quite interested, but I may not have the time to invest for a while.  But, please keep me infrmed of the progress.
Raymond Spornhauer  @Reply  
          
14 months ago
Always interested
Pino Arcuri  @Reply  
     
14 months ago
I’m in.
Michel Paul  @Reply  
      
14 months ago
I am interested, let me know when it will be available.

Thanks
Alex Hedley  @Reply  
            
14 months ago
How's the testing gone with millions of records?
Jon Capps  @Reply  
       
14 months ago
I am interested, that is why I migrated to Dataverse, it's locked down tight. If I fail to provide the user access to the tables from Dataverse side, the client version will not get anything. The only way to get to Dataverse tables is with 0365 account and password.
Jeffrey Kraft  @Reply  
      
14 months ago
Interested...
George A Korentis  @Reply  
       
14 months ago
Yes, I would be interested.  
Would also be VERY interested in moving an Access application to the cloud using SQL and Blazor!
Donald Lader  @Reply  
      
14 months ago
I am in. Same question about performance on large tables. So far I have not been impressed with a move to MS SQL Server and speed issues with Access.
Richard Rost OP  @Reply  
          
14 months ago
I've been thinking about doing something with pagination, like a web page, so that it doesn't load all 50,000 records at once. It will load the first 20-30 records and give you buttons on the bottom to flip between pages. That might be a better solution.
Colin Levy  @Reply  
       
14 months ago
Yes, definitely interested. Currently working on a project where SQL may be required as the backend in the near future. Thanks
Gloria Tsakoumas  @Reply  
    
14 months ago
Your timing is a god sent... I need this!
Eduardo Benaim  @Reply  
     
14 months ago
Yes i would welcome anything that helps me take my database online.  I am using anyDesk and RemoteDesk to work away from my office.  I decided that i really need to take my database SECURELY   on line. My database sends texts and emails to my customers using MS outlook and Twillio. I can also click on a customers phone and generate a call using RingCentral. My goal is to have all this functionality on an online Database Anydesk has been the best method so far but something as like Phone calls  dont work because they are generated remotely.  So in conclusion: i would welcome any seminar that helps to do this.
Eduardo Benaim  @Reply  
     
14 months ago
Based on your discussion  so far i have two questiosn.  1. Have you provided for the NULL field errors that can not exist in sqldb?
2. What happens with your DB if the internet connection is severed.  Will the DB be corrupted?  Im sure you have thougt about this.
Richard Rost OP  @Reply  
          
14 months ago
Eduardo 1. Can you be more specific? SQL Server can handle NULL values just fine. 2. If your connection goes down, your Access db won't work. Will the db be corrupted? It shouldn't. SQL Server is much more robust than an Access backend. I've had those get corrupted if network connectivity was lost, but I've never seen an SQL Server backend have that problem. You might lose that one record, but that's it.
Eduardo Benaim  @Reply  
     
14 months ago
Thank you for your reply.
Sorry if i did not explain myself well.
In the First Issue I am refering to the tricks explained in addendum2. Bit fields must be Yes/no but not empty.   So im concerned about importing stuff and get locked.  It happened to me in the first try.
The second issue has to do with the problem that might be caused by running in memmory instead of linked tables. I was wondering what happens with a connection failure if the stuff in memmory has not been not saved yet.
Probably I am geting ahead of myself too soon.
In any case I am reviewing the complete course to be ready when you start publishing the stuff.
Kevin Robertson  @Reply  
           
14 months ago
Sometime write conflicts can occur so I often add a Row Version to the table which helps a lot.
    ALTER TABLE dbo.CustomerT ADD RowVer ROWVERSION;

If adding or editing records using a Recordset or SQL then dbSeeChances is usually needed.
Eduardo Benaim  @Reply  
     
14 months ago
If you were to put your ABCD Database OnLine

Where would you store SECURELY the Entity folder files 1,2,3,4… and what would be the security. There are ID files Pictures, Bills etc.  As you recomended Sendgrid for the SQL tables on line someone recommended Azure to me to store the folders which I find to be complicated expensive and maybe an overkill. I have been wanting to migrate to the webb but still have a few puzzles. This one being an important one. Please recomend an maybe make a video.
Sami Shamma  @Reply  
             
14 months ago
I have actually moved the ABCD onto SQL Server and hosted it online. There are a few things you need to worry about that would not work out of the box. And I put it behind my standard security system which is based on Richard's.
Alex Hedley  @Reply  
            
14 months ago
Are you wanting a website to talk to the ABCD db as well? See ABCD Website for my attempt.

You could store the images on the same web server, or any webserver, just check your bandwidth limitations
See ASP Upload

You could also encode them like I did in Genealogy Database Online, but that has it's own limitations.

Or like you say AWS/Azure/GPC, the possibilities are endless.
Eduardo Benaim  @Reply  
     
14 months ago
Sami sami.  I did not know you did this.  Your website asks for login/password   I would like to see more. Where domyou h
Keep the entity folders/.  I would like to see more
Eduardo Benaim  @Reply  
     
14 months ago
Alex can you have the entity folders in the SQL server?
Eduardo Benaim  @Reply  
     
14 months ago
Sami would like to see what you did with ABCD Online  limitations  and fixes.  I need to know this before i attempt to move my database on line.
Sami Shamma  @Reply  
             
14 months ago
I am busy at the moment, but I will do my best to post something.Eduardo
Alex Hedley  @Reply  
            
14 months ago
I'd have to sort out a login, which I can't atm.
Hopefully the videos give you enough of an idea of what was possible.

> Alex can you have the entity folders in the SQL server?
What do you mean by folders?
SQL Server is a db not a file system (per se)

Do you have IIS setup locally that you can play about with?
Richard Rost OP  @Reply  
          
14 months ago
If you need the files themselves to be publicly available yet password protected then, like Alex said, now you're getting into IIS security, which is something I haven't covered yet anywhere. An easier solution would just be to use obfuscated URLs - but that's not 100% secure.
Eduardo Benaim  @Reply  
     
14 months ago
Sami i will wait to see what uo did. Thank you
Eduardo Benaim  @Reply  
     
14 months ago
Alex folders in ABCD are whre the files are kept.  Ids. Documents etc.  the database stores them iin the customer folders.   Since they are not inside the database they can not br inthe sendgrid sql server.  To have ABCD or any other database on lone i have to provide a solution that os easy and secure to sabe the documents.  One must be able to upload doenload and atach a document to anemail sent from the database. Again i welcome any ideas for a complete solution.
Alex Hedley  @Reply  
            
14 months ago
As stated you'd need a web server
Nils Markgraf  @Reply  
     
14 months ago
I would also be very interested! Sounds really great!!
Thank you already in advance :D
Jason Potter  @Reply  
     
13 months ago
Most definitely interested in that. I have a great need for that right now. I would also love a seminar on SQL Server locally.

This thread is now CLOSED. If you wish to comment, start a NEW discussion in Access SQL Server Online.
 

Next Unseen

 
 
What's This?

 

The following is a paid advertisement
Computer Learning Zone is not responsible for any content shown or offers made by these ads.
 

Learn
 
Access - index
Excel - index
Word - index
Windows - index
PowerPoint - index
Photoshop - index
Visual Basic - index
ASP - index
Seminars
More...
Customers
 
Login
My Account
My Courses
Lost Password
Memberships
Student Databases
Change Email
Info
 
Latest News
New Releases
User Forums
Topic Glossary
Tips & Tricks
Search The Site
Code Vault
Collapse Menus
Help
 
Customer Support
Web Site Tour
FAQs
TechHelp
Consulting Services
About
 
Background
Testimonials
Jobs
Affiliate Program
Richard Rost
Free Lessons
Mailing List
PCResale.NET
Order
 
Video Tutorials
Handbooks
Memberships
Learning Connection
Idiot's Guide to Excel
Volume Discounts
Payment Info
Shipping
Terms of Sale
Contact
 
Contact Info
Support Policy
Mailing Address
Phone Number
Fax Number
Course Survey
Email Richard
[email protected]
Blog RSS Feed    YouTube Channel

LinkedIn
Copyright 2026 by Computer Learning Zone, Amicron, and Richard Rost. All Rights Reserved. Current Time: 9/5/2026 3:21:57 PM. PLT: 0s