I want to design a database for a student portal. I want to create a student role, so for every student I need to create a user and assign the users's role. It seems like many users will be created. Could there be any problem such that large resources will be needed.
-
Oracle databases can handle many users. Often, though, an application communicates to the database using a single user. The application then manages the users with its own logic. – Gordon Linoff Sep 03 '16 at 15:30
-
@GordonLinoff so my practice is on right way ? – Waleed Raza Sep 03 '16 at 15:38
-
Are you confusing database user accounts (schemas) and database roles, with end-user login credentials and authorisations? – Jeffrey Kemp Sep 04 '16 at 07:19
-
yup i m confusing about user accounts (schemas) – Waleed Raza Sep 04 '16 at 08:08
-
It is actually a good idea to have endusers represented with DB connections as it allows defense in depth. However it is seldomly done because for exampel you dont want to maintain ACLs for them. Oracle does allow with Proxy users to have a app user switch to an end user if you really want to. – eckes Sep 04 '16 at 19:19
-
yeah u r ryt , thanx :) – Waleed Raza Sep 05 '16 at 15:55
2 Answers
The number of user accounts is not the issue - you can create as many as you think you need. The issue that is of more concern is how many concurrent user sessions - users logged into the database at the same time - will there be? Each user needs memory to do their work and this must be allocated. If you have more simultaneous user session than memory can accommodate, this can be a problem. Read more here and here. If you will have a huge number of concurrent users, consider a shared server connection setup, rather than the default dedicated connection.
Another thing you need to be aware of is the financial cost implications depending on whether you have a per user licence.
However as others have already mentioned applications usually connect to the database using a single set of credentials, end users are not usually defined as database users, and therefore you would not be able to use the database defined roles to differentiate between the permissions.
You could likely have two database defined roles DBA or SYSADMIN, and PORTAL_APP.
The end user roles would need to be handled within the portal application, and this should be consistent on the front-end and the back-end of the application.

- 8,456
- 3
- 35
- 50
-
i am using xpress edition so it is free of cost so i think i will not have to face user licence , isn't so ? – Waleed Raza Sep 05 '16 at 16:00
-
Yes, probably, but more importantly as mentioned the end users should not be created as database defined objects. – crowne Sep 06 '16 at 12:26