There has been a lot of irresponsible talk about this subject, so here it is, published for all to see the
truth. The principles, the problem, the responsibility, the solution, and the warning. Ignore it at your peril!
Neither Access nor Jet touches file permissions. Period. Never has. I have actually been IN the source code and
can guarantee this to be true. If you doubt it, then hook the darn security APIs and after you prove you are
wrong, be sure to come back and tell us that you have proven it, okay? Anyone who can complain about the problem
can fess up to being wrong if they find that they are, in my opinion.
Some people have noticed that the file created by Jet does not always get the permissions they expect. Of
course, the rules for the inheritance of permissions are not clearcut. Not only are there the general NT file
security, inheritance, and policy issues, there is also whether the file is in the boot dir, in the root dir of a
drive, where the temp dir is, version of the OS, and many other issues. Since neither Access nor Jet tries to
change the setting, they are at the mercy of that myriad of factors.
Whose job is to "fix" the problem? Well, since neither Access nor Jet claims to ever do anything here, they
cannot be held responsible. Why should they, since NT permissions are not really compatible with Jet security?
The only "bug" is in the user expectations. The "fix" is easy: accept reality, then look at your particular
Well, if you really *need* this to work, then there are two simple APIs: GetFileSecurity and SetFileSecurity,
which will allow you to get the permissions of one file and apply them to another. You can actually look at the
code samples page on this site and you will see a sample that
will do this all for you!
Please keep that incompatibility in mind! Jet security and NT file permissions are entirely unable to co-exist
well, and attempts to mix them will lead to a lot more problems than actual solutions. The most useful thing you
can do is just not bother. Truly!