2016-12-26 17:33 GMT+01:00 Fabien COELHO <coe...@cri.ensmp.fr>:

>
> please, can send link?
>>
>
> My badly interpreted PL/SQL example was on the same page you point to
> below:
>
> so some better documentation
>> https://docs.oracle.com/cd/E11882_01/appdev.112/e25519/packa
>> ges.htm#LNPLS99926
>>
>
> There is a private 'number_hired' which given its name I thought was
> counting the number of employee, but it was just counting the number of
> "hire_employee" calls in the current session... Not very interesting.
>
> I am sure, so package variables are not shared between sessions/backends
>>
>
> Indeed, I misinterpreted the Oracle documentation example.
>
>
> [ grantable function example to access a private session variable... ]
>>>
>>
>> I am sorry, it is not secure. Theoretically it can work if you have
>> granted order of function calls, but if not?
>>
>
> I'm not sure I understand.
>
> If you do not grant/revoke permissions as you want on the functions, then
> it can be invoked by anybody.
>
> My point is that it is *possible* to tune permissions so as to control
> exactly who may access a private session variable.
>
> That is exactly the same with a grantable session variable if you do not
> have done the necessary grant/revoke, there is no difference?
>

If you use pattern DECLARE IF NOT EXISTS, you cannot be sure so some other
did it. It is working only if you create variables in session as first.

Only if object is fixed in schema, then object is trustworthy - because you
have to have rights to modify schema. In my proposal only trustworthy user
can create the variable in some schema. Not trustworthy user can use public
schema, or we can support temporary objects (similar to your proposal) in
hypothetical schema "private". I have strong tools in Postgres for
enforcing security, and I would to use it.

Regards

Pavel


>
> --
> Fabien.
>

Reply via email to