B
Brian
I have been using simple tables to store user ID's & passwords and want to
move toward inherent Access DB security to prevent some clever user from
reading/manipulating the user/group tables manually. However, I now have the
disadvantage of having developed security-related needs well beyond simple
user security, such as user-based/user-settable options.
I need a jump start. I don't need full code--just a pointer in the right
direction. Pointers on any or all of the following would be most helpful
(since they are related, I put them all in one post instead of 7 separate
posts):
1. How does one lookup/reference the current user ID from within VBA? For
instance, I record the current user as the user who created or edited a
record in some cases.
2. I enable/disable various controls based on group membership. How do I
determine the current user's membership in a particular group at runtime? How
do I refer to the group in VBA? Right now, I have a global Boolean variable
for each group, and when the user logs on, I set each to True or False,
depending on the user's group membership. Then, I have code such as this in
Form)Open: If GroupAdmins Then Button1.Enabled = True Else Button1.Enabled =
False.
3. How might one attach other options not inherent to Access security to the
user ID. For example, I currently use a UserOptions table that has a
relationship to my Users table, and one of the fields is Yes/No ConfirmQuit
so that each user can decide for himself whether he wants to be required to
confirm when closing the program.
4. I disable all standard menus and replace them with VERY rudimentary ones
(just print options) to prevent users from monkeying with my data using
native Access tools and instead provide delete/add/etc. buttons on forms.
Since this makes Access security options unavailable to all users, how might
one go about managing (adding, deleting, resetting passwords) user security
from a form?
5. I need some form of referential integrity so that the user cannot be
deleted if, for instance, his userID is recorded on a particular invoice or
contract. Right now, I can rely on referential integrity without Cascade
Delete in my users/groups tables, and I do not relish the thought of running
through DCounts of all pertinent tables where User = current user before
allowing deletion.
6. In some cases, I simply deactivate the user account so that it still
exists but the user cannot log in nor can his User ID be attached to new
records.
7. I allow the client to place the front end & back end wherever they like,
and then provide a re-linking tool in the front end. In a new distribution to
a client using Access runtime (2003), how do I package the distribution to
ensure that the path to the workgroup file is set correctly, or is this even
necessary?
move toward inherent Access DB security to prevent some clever user from
reading/manipulating the user/group tables manually. However, I now have the
disadvantage of having developed security-related needs well beyond simple
user security, such as user-based/user-settable options.
I need a jump start. I don't need full code--just a pointer in the right
direction. Pointers on any or all of the following would be most helpful
(since they are related, I put them all in one post instead of 7 separate
posts):
1. How does one lookup/reference the current user ID from within VBA? For
instance, I record the current user as the user who created or edited a
record in some cases.
2. I enable/disable various controls based on group membership. How do I
determine the current user's membership in a particular group at runtime? How
do I refer to the group in VBA? Right now, I have a global Boolean variable
for each group, and when the user logs on, I set each to True or False,
depending on the user's group membership. Then, I have code such as this in
Form)Open: If GroupAdmins Then Button1.Enabled = True Else Button1.Enabled =
False.
3. How might one attach other options not inherent to Access security to the
user ID. For example, I currently use a UserOptions table that has a
relationship to my Users table, and one of the fields is Yes/No ConfirmQuit
so that each user can decide for himself whether he wants to be required to
confirm when closing the program.
4. I disable all standard menus and replace them with VERY rudimentary ones
(just print options) to prevent users from monkeying with my data using
native Access tools and instead provide delete/add/etc. buttons on forms.
Since this makes Access security options unavailable to all users, how might
one go about managing (adding, deleting, resetting passwords) user security
from a form?
5. I need some form of referential integrity so that the user cannot be
deleted if, for instance, his userID is recorded on a particular invoice or
contract. Right now, I can rely on referential integrity without Cascade
Delete in my users/groups tables, and I do not relish the thought of running
through DCounts of all pertinent tables where User = current user before
allowing deletion.
6. In some cases, I simply deactivate the user account so that it still
exists but the user cannot log in nor can his User ID be attached to new
records.
7. I allow the client to place the front end & back end wherever they like,
and then provide a re-linking tool in the front end. In a new distribution to
a client using Access runtime (2003), how do I package the distribution to
ensure that the path to the workgroup file is set correctly, or is this even
necessary?