Privileges in Oracle WEBDB

Oracle WEBDB is implemented as a library of stored programs (packages) written in PL/SQL. Regarding such programs, there are three basic rules in Oracle:

  1. They execute under the privileges of the owner of the program, not under the privilege of the caller.
  2. Roles are disabled when compiling PL/SQL code. Privileges must be granted directly in order to be used within the code.
  3. Only the execution of the outermost program to be called by the user may be granted via a role.

The owner of the WEBDB packages is a kind of system administrator. Especially he has the privilege to select, insert and update any table and to execute any procedure. The execution of some programs is granted to PUBLIC (the programs you see in the URL address when using WEBDB).

Because the owner WEBDB is so powerful, the user privileges must be checked expliciatly in all these public programs. The security policy in Oracle WEBDB is the following:

The BUILTIN privilege allows you to create items in WEBDB as reports, forms, menues,... These items are stored packages and may be granted to a role or special users. Such items can be made accessible within the Webdb Site.

The privilege BROWSE has a very misleading name. As a developer with a browse privilege in an other schema you cannot only query all tables, but you are also allowed to change data, but only inside WEBDB, not through other interfaces as SQLPLUS, TOAD or precompiler programs, unless these privileges are granted to you by the owner of the table. This fact limits in reality the use of WEBDB to your own schema(s).