Adding a User Account Security System of tables

Not sure if this was the correct thread to ask this question, but i figured it was good as anywhere
I am drawing up some preliminary dessigns of a user account security system for an application.

I will explain what I have and what I want, and someone can explain what I should need.

I was thinking I would like a User Account Security System for an application (not yet developed).

The Idea would be to have users, who belong to groups, which have x number of rights.
The administrative user would of course belong to all user groups and having all rights.

The rights would then be used to give access to users to certain functionality of the application.

I have built some preliminary tables.  See attached image of tables.
There are additional fields to be added to Users table which i have left out for simplicity.

Any ideas, suggestions, or help with the tables would be appreciative

thanks

USERS
-----------
Id
User_Name
Password
Last
First


USER_GROUPS
------------------------
Id
Group_Name
Description


USER_RIGHTS
----------------------
Id
Right_Name
Description

tables.jpg
geocoins-softwareAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

geocoins-softwareAuthor Commented:
Sorry, I forgot to mention......i am not sure how i would implment the User Groups belonging to the Users

and/or implement the User Group Rights belonging to the User Groups

see my rework of the tables below

USERS
-----------
Id
User_Name
Password
Last
First
User_Groups (Example: 1, 3, 4, 5, 9,etc)

USER_GROUPS
------------------------
Id
Group_Name
Description
User_Group_Rights (Example: 3, 9, 21, 31)

USER_RIGHTS
----------------------
Id
Right_Name
Description


thanks  again
0
mikelittlewoodCommented:
I pretty much use this system geocoins-software.

I have

userLogin
-----------
userLoginID
windowsLoginName
forename
surname
userPassword
accessLevel
enabled
lastAccess
expiryDate
prevPasswords

userRoles
------------
accessLevel
description
userRoleID

userAccessRight
---------------------
userAccessRightID
functionID
description
accessRights


The user role table can have up to a maximum of 32 job roles as I use the accessLevel field to store a value that is a multiple of 2 (for bitwise operations later).
A single job role value is stored against each of the user logins.
Then the user access right table holds individual functions names with the accessRights field being a sum of all the jobs roles that can be associated with things llike pushing a button, or performing a task.

If there were 3 job roles, access level values 1, 2, 4,
then we have a function called PERFORM1 with access level 6, this means that by bitwise operations, roles 2 and 3 would be able to perform the task but not role 1

Hope this makes sense.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
mikelittlewoodCommented:
O and if you don't want to write your own, TMS have one based on the same sort of principle which looks nice.
http://www.tmssoftware.com/site/tss.asp
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Delphi

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.