prevent a program to access the actual instance of application object

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Hi
I have an access 2000 datatbase program with password, security..
While the datbase is opening, a VB program can access the application object of actual access instance an manipulate data and objects

How can I prevent this action

Thank
TN
 
I have an access 2000 datatbase program with password, security...
While the datbase is opening, a VB program can access the application
object of actual access instance an manipulate data and objects.

I am not quite sure what you mean by "password security" -

If this is something you have created purely in VBA, then it's a chimera
and not actually secure at all.

If you meant that you have applied a password to the mdb file, then it is
also extremely unsafe. One the password is given, then the Access
application has complete access to it and so will any process controlling
the it.

If you mean that you have installed the full Access User Level Security,
and you have found a hole in it so that OLE automation will allow
unauthorised access to the data, then we'd appreciate more details here and
you should probably be talking to Microsoft direct. Remember, though, that
user level security is finicky to do completely, and it is easy to miss out
a step and leave the database either open or dead. Recheck your own steps
first.

With best wishes


Tim F
 
With "password, security" I mean "the full Access User Level Security". I
have created a system.mdw, the admins group, user group have any permission,
each user of my group had password protection.

Scenario:
I open myself the DB with MS Access (with login).
I wrote a program with VB6, that use application object of the current
instance of MS Access:
Set AccApp = GetObject(, "Access.Application")

then my program can do all things. My VB program manipulates the code
modules (number the code lined, add errorhandling).

I am sure, I did protected my DB correctly.
I think, MS Access can prevent creating another instance of application
object, as in VB:

If App.PrevInstance = True Then
end
end if

Thanks
TNL
 
TNL said:
Set AccApp = GetObject(, "Access.Application")

then my program can do all things. My VB program manipulates the code
modules (number the code lined, add errorhandling).

I am sure, I did protected my DB correctly.

I have not experimented with this, but I see what you mean. It is kind of
safe, in that you have to have control of the machine and must be able to
open the mdb in the first place, but there are clear implications for a
malicious program to sit in the background and probe every now and then for
a running Access application. Nasty.

I can't remember if Access has an "Ignore OLE automation requests" option
like other apps do: that would seem to be an important switch to keep On.

Unless anyone else here has any other ideas, it might be a good idea to
bring this to the attention of Microsoft.

Good point.

All the best


Tim F
 
Back
Top