Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.tools -> Re: Can you trigger an automatic WHERE-clause on any statement on a table?
"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
![]() |
![]() |