In this tutorial we will show you how to setup static User Level Security. We will use the demo database for demonstration.
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:
Static User Levels | The User Levels and permissions are defined in the project and the User Levels are not to be changed after script generation. |
Dynamic User Levels | The User Levels and permissions are defined in 2 tables in the database, the User Levels can be changed with the generated scripts. |
In this tutorial we use Static User Level Security.
The "employees" table and "orders" table in the demo will be used in this example.
Fields in Table "employees"
Fields in Table "orders"
Steps to Setup Static User level Security
1. Open DB AppMaker
Open DB AppMaker and connect to the demo database.
2. Set up User Levels
Click on the Security tab, there are two sections for the login process:
Administrator Login
If you enable this option, a hard-coded Administrator account will be generated
which has all access right to all tables.
Use Existing Table
Enable this option to set up the user levels. You should select the
security table and the corresponding User 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.
There are three built-in user levels:
Anonymous | The built-in user level for the anonymous user (i.e. users that have not logged in). The User Level ID of Anonymous is -2. |
Administrator | The 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. The User Level ID of Administrator is -1. |
Default | The built-in default user level for logged in user. The User Level ID of Default is 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.
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. Generate scripts
Go to the Generate tab, click the Generate button to generate scripts.
4. Run the 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, login 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 you can view the records, you can see the "+" button at the bottom. If you slide the item, you can only see the "Copy" button, but not the "Edit" and "Delete" buttons.
Also See
Advanced Security - User ID Security
Advanced Security - Dynamic User Level Security