Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.tools -> Re: Can you trigger an automatic WHERE-clause on any statement on a table?

Re: Can you trigger an automatic WHERE-clause on any statement on a table?

From: Matt B. <mcb_at_fightspam.sd.znet.com>
Date: Sun, 8 Oct 2000 21:27:07 -0700
Message-ID: <su2i03o3kd7k8a@corp.supernews.com>

"Jacob" <jacmads_at_hotmail.com> wrote in message news:0y4E5.18745$Ly1.252129_at_news5.giganews.com...
> Hi all
>
> We are currently in the process of migrating a previous single-user
> application to a multi-user application running on the web using Forms
> Server 6i on Oracle8i 8.1.6 on Windows NT. The multi-user application is
> supposed to be based on user rights specified in a user table, which
> contains information about, which modules of the application, the user is
> allowed to use.
>
> The existing database schema will be changed to include a "user_id" tuple in
> each table, which contains user data. This tuple will reference the user
> table's primary key "user_id". This means, that either we have to change a
> lot of SQL statement throughout the program to include "WHERE <user
> data-table>.user_id = users.user_id" (the "users.user_id" is at login
> compared with "SELECT USER FROM DUAL", and if no rows returned, the user is
> denied application login).
>
> Does anyone know, if it is possible to create a trigger or some other
> database mechanism, which you could use on the user data tables, which
> automatically appends the mentioned WHERE-clause, or do we have to re-code
> all the SQL statements in the application?
>
> Any advice on this subject would be greatly appreciated!
>
> Thanks in advance
> Jacob
>
> jacmads_at_hotmail.com

Sounds like a view should do it. Put a view in each user's schema with the where-clause for the view. That way it the view will be based on the original table(s) and the where-clause will always take effect. Put the create view SQL in a script you can run for every new user so you don't have to re-do it manually every time.

-Matt Received on Sun Oct 08 2000 - 23:27:07 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US