Also, Kite, I'm not sure you're right about those steps you listed.
Can you really open up a blank database, use vba to open an accde, and get its connect strings?
Try it for yourself :
SQL:
Public Function tests()
Dim db As DAO.Database
Dim tdf As TableDef
Dim index As Integer
Set db = OpenDatabase("D:\*******.accde")
For Each tdf In db.TableDefs
If Not (tdf.Name Like "USys*" Or tdf.Name Like "MSys*" Or tdf.Name Like "~*") Then
Debug.Print index & " " & tdf.Name & " --> " & tdf.Connect
index = index + 1
End If
Next
End Function
Does it matter how I have done it? As stated before, once you open a connection with a password, even if you close the connection, the linked tables show the connect string (even if the connection is dropped.The whole thing is pretty well obfuscated. They would have to be very knowledgeable and know how you were doing it to even be turned on to the possibility of that method. It's far more obfuscated (and thus a bit more secure) than just giving them full unrestricted access to your sql tables via Windows Authentication..
They would have to be very knowledgeable? Really? The time that "make it hard, then they get tired and stop" is over. Any AI, even Google gives you the methods you need in less than 15 minutes of research.
Please don't misunderstand me. I'm not telling you not to secure the database. I'm just saying Pat's method doesn't work anymore. (Or at least I don't understand how it can work). I've been researching for a way to secure sql server for a long time, but couldn't find a reasonable way.
Once you enable windows authentication, any app can see the structure of the tables.
If you disable windows authentication and use accounts, then the password can be reviled, no matter how many functions and algorithms you use. The last used password is sitting there in connection string and can be used to connect to server with SSMS, Excel, Access or any other application.
I haven't watched the videos yet, but your #31 reply seems that you understand the method. It would be great if you have some links for reading on the mentioned pass through query. I'll watch the videos this weekend. Maybe I can find the answer there.
Thanks.
Last edited: