Tutorial - Advanced Security - Static User Level Security
In this tutorial we will show you how to setup static User Level Security in ASPMaker. We will use the demo database for demonstration.
The demo database is a modified version of the Access demo database demo.mdb
for better illustration.
User Level
User Level Security secures data at table level. Each user level is granted
with specific permissions to tables in the database. Users with different
access levels are restricted with different add/copy, list/search/view,
delete and edit rights.
There are 2 types of User Level security:
1. Static User Levels - the User Levels and the permissions are defined in the project and the User Levels are not to be changed after script generation.
2. Dynamic User Levels - the User Levels and the permissions are defined in 2 tables in the database, the User Levels can still be changed with the generated scripts.
In this tutorial we use static User Level Security.
The "Employees" table and "Orders" table in the demo.mdb
will be used in this example.
Fields in Table "Employees"
Fields in Table "Orders"
Steps to Setup Static User level Security
1. Loading ASPMaker
Open ASPMaker and connect to the demo.mdb database.
2. Setting up User Access Levels
Click on the [Security] tab, there are two sections for the login
process:
Administrator Login
If you tick this option, a hard-coded Administrator account will be generated
which has all access right to all tables/views.
Use Existing Table
Tick this option to set up the user access levels. You should select the
security table and the corresponding Login Name and Password fields.
To set up the user levels, click on the [Advanced] button. A popup
window will appear. Click on the [User Levels] button. Select the
User Level Field.
Note: The User Level field must be of integer
data type. Non integer fields will not be seen in the User Level Field
combobox.
There are two built-in user levels:
Administrator - Administrator is a built-in user level
that has all permissions plus the privileges to modify User IDs and User
Levels. Its permissions are same as that of the hard-coded Administrator
Login. The User Level ID of Administrator is -1.
Default - Default user level is built-in user level with user level = 0. Since User Level field is an integer field, if you set a default value of 0 for this field, this user level will become the default user level for the user after registration and before the Administrator assigning another higher user level.
Click to add
a new user level. Enter the description, and default permissions. Click OK to finish.
For each user level, you can set refine the permission for different
tables/views. Click OK to finish.
Note: Even you enable all permissions for an user defined User Level, the User Level will NOT become same as this Administrator User Level. User defined User Levels will not have the permissions to manage users.
If you go to Field Setup Page now and view the Edit Tag for the User
Level Field, you should see that the Edit Tag has been setup as "SELECT"
and the user levels have been added automatically in the value list:
3. ASP Script Generation
Click the [Generate] button and ASPMaker will generate
the required ASP scripts automatically.
4. Running the ASP Application
To assign different user level for the users, login as Administrator
and go to the user table (the "Employees" table in this case).
You'll find that the Edit Tag of the User Level Field is setup as "SELECT"
(combobox) and the combobox is populated with the user levels we defined
above automatically.
We assign a password and the user level "Sales" to the employee
#1 (the employee with EmployeeID equals 1). Then we logout.
To see the Advanced Security works, we login again as employee #1 using "nancy" as user name and "1234" as password.
According to the user level defined by us, users with "Sales"
level has view and add permissions to the "Orders" table only.
They are not allowed to update or delete records. Employee #1 belongs
to the "Sales" level, so we do not see the links to the edit/delete
page.
Notes:
- Users have no right to change his own user level. Only Administrator can change an user's user level. If you want to
assign user levels in the generated scripts, a hard-coded administrator
login account must also be created. Alternatively, an user must be assigned with the Administrator level. However, you may still need to use the hard-coded Administrator Login to log in and assign user levels to users initially. Of course, you can also modify data in your database directly. The value of the Administrator level is -1.
- Since User Level works at table level only, if an user has permissions
to the User Table, he/she may be able to modify personal information
(including user level and user id) of other users. Therefore you should
not expose the User Table to normal users. If you want to expose the
User Table and restrict users to access their own data only, you need
to use User ID Security, which
controls permissions at record level. (See Advanced
Security - User ID Security)
- There are two types of Advanced Security implemented in ASPMaker - User ID Security and User Level Security. User ID Security secures data at record level; User Level Security secures data at table level. They can work independently or work together. (See Advanced
Security - User ID Security)
Also see:
Advanced Security - User ID Security
Advanced Security - Dynamic User Level Security
|