Thanks for giving me the background info, Dyre. I see now the problem you
are trying to address. With the collation work, I haven't been able to keep
up with the list and so was not aware of the background of this thread.

One thing that comes to my mind with privilege checking only at first
execution is will it be a problem if different users execute the same
statement? Will we be able to know that even if the statement has already
been executed once, we should do the privilege checking because this time,
it is a different user who is executing the statement.

Mamta

On 4/24/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:

Mamta Satoor <[EMAIL PROTECTED]> writes:

> Dyre, I don't remember now if we discussed the 2 possible implementation

> choices ie to invalidate prepared statements by making them depend on
> privileges needed vs just catch privilege revocation at prepared
statement
> execute time. I wonder if there is anything in the Derby dev list
archive
> about this.

Again, thanks for taking the time to look at this. I'll scan the
archives and see what I can find.

> It seems like though that privilege revocation does get caught at
execute
> time with the current implementation.

Yes, but it happens inside fillResultSet(). Currently that method gets
called on every execution, but we are (DERBY-827) trying to make it
happen only on the first execution.

> Does that approach not work in some circumstances and is that why we
> are disucssing that approach?

It works just fine. I've tested modifying the call to

generateAuthorizeCheck()

so that it adds its code to execute(), rather
than fillResultSet(), and this makes the test pass (and I haven't
noticed any negative side effects).

However, Dan wrote earlier in this thread (Tue, 03 Apr 2007 07:07:40
-0700):

"I think that the checking authorization once is the desired behaviour,
not every execution, for performance reasons. The statements should be
invalidated when a revoke is executed."

So that's why I'm looking at this...

--
dt


Reply via email to