Multiuser Support

JChem can be used in various multiuser configurations with different databases. However this versatility also means that the administrator of a JChem database should learn a few things about the property table.

1. The JChem property table

The JChem property table contains information about JChem's tables, registration information and some details about the database. Simply, this table identifies a JChem "environment" or "configuration". There can be one or more property table for a database, located under the same or different schemas, if the database supports it. This means a lot of possibilities, the following sections describe some of the most useful ones.

2. The simplest solution: one user for all (concurrent single user mode)

This "multiuser" mode can be used for testing, or places where security is not an issue.
In this case there's only one property table and only one user name (for example "jcuser"), but several people log in with this username into the database and work simultaneously.

  • The owner of the property table is the common user (e.g.: "jcuser")

  • The name of the property table is the same for everybody (e.g.: "JChemProperties")

  • Every user has the same access rights

2.1. More than one property table

The database can be split into groups of tables: tables created using property table "jchemprop1" for example won't be accessible using "jchemprop2". Remember that every user can use any property table, so this is just for convenience and not for security.

3. True multiuser modes

In these cases the users get individual login names from the database administrator.
JChem relies on the security functions of the database software, because it provides better security than building these features into a high-level application. However, it also means that database administrators have to manage JChem users themselves. Note that there are differences between using certain databases.
We can categorize common databases into two categories: with and without schemas.

3.1 Databases without schemas

In these databases there is a common space for all users, so the solution is quite straightforward:
The database administrator provides access to the common single property table for all JChem users.

  • The owner of the property table can be any database user, but full access must be granted to all users.

  • The name of the property table is the same for everybody (e.g.: "JChemProperties").

  • All data tables are listed for every user (e.g. in JChemManager), but they may have different access rights depending on the choice of the database administrator.

3.2 Databases with schemas

In these databases (like Oracle for example), the best solution is to create a special admin user (for example "jcadmin"). This user will own the property table, full access must be granted to all other users. This admin user might also own the common data tables and share them, although individual users have this ability too.

  • The owner of the property table is a dedicated database user (e.g. "jcadmin") , but full access must be granted to all users.

  • In case of Oracle SELECT right should be given for the following sequences:

    • [table_name]_SQ

    • [table_name]_USQ

  • The name of the property table is the same for everybody, it is preceded by the name of the dedicated user (e.g.: "jcadmin.JChemProperties").

  • All data tables are listed for every user (e.g. in JChemManager), but they may have different access rights depending on the choice of the database administrator.