Sorry about the long silence on this.

On Mon, Apr 13, 2015 at 3:34 PM David G. Johnston <
david.g.johns...@gmail.com> wrote:

> On Sun, Apr 12, 2015 at 10:23 PM, Sameer Kumar <sameer.ku...@ashnik.com>
> wrote:
>
>> On Mon, Apr 13, 2015 at 1:03 PM Jim Nasby <jim.na...@bluetreble.com>
>> wrote:
>>
>
>>> No. I suspect the community would support at least a hook for GUC
>>> changes, if not a full-on permissions system. A hook would make it
>>> fairly easy to add event trigger support.
>>>
>>>
>> I hope someone out there is listening :)
>>
>> I hope I have made my concern clear, I currently don't have a way to
>> control users from changing the parameter values for their own settings,
>> which allows each user to set in-appropriate values e.g. for work_mem.
>>
>>
> If work_mem is the only example you can describe then I'm doubtful that
> any kind of urgency is going to be associated with this request.
>

I guess any parameter which can be altered at the user level should have
some limitations e.g. one may not want to allow a user to reset its own
level of client messages.
As an admin one may want to have control over what a user can alter and
what the user can not alter.

e.g.
"

ALTER USER my_app_user  restrict set for client_min_messages;
or
[
   ALTER USER my_app_user  restrict set for client_min_messages in
('DEBUG');
 and
   ALTER USER my_app_user restrict set for work_mem limit to 10MB;

]

"

  Your actual request does nothing because the same user can simply issue
> "SET work_mem" at session start and bypass the user defaults that you want
> to prevent
>

>

My point is the limitations imposed should not be just at user level but
should also be inherited by all sessions made by that user.


>
> You haven't provided enough meat for anyone to offer advice regarding the
> scenario you are encountering that you think has "restrict alter role" as a
> solution.
>

To put it very simply as a DBA one would want to be in control of what the
users in that environment can change about themselves and what they can not.


> If you want to take the time to actually paint us a picture then maybe
> suggestions or motivation for change will result.  But, in the end, the
> current architecture of PostgreSQL means that people with credentials to
> the database have the capability to DoS the server.  work_mem is simply one
> possible avenue and, in reality, one where an inappropriate value can be
> either too large or too small.
>

Yes! Plus as an user I can change the logging parameter for my account
(which as well is risky in many environment)


>
> The useful solution here is not restring work_mem but rather having a
> process in place that provides data regarding excessive memory utilization
> AND disk I/O and associating that data with the work_mem value and
> executing user.  The event triggers would also allow for monitoring,
> without setting an excessive log_statements level, changes and their values.
>

But that is more of a cure, won't it be a good idea to have some level of
preventive measures to ensure DBAs can control which user can change which
"user-level" value (and even better if we can attach a limit to it).


>
> If you really care about their "set role" aspect you can at least setup
> cron shell script to query the catalog and report any undesirable settings
> and maybe even remove the offending entry.  You are still open to "SET
> work_mem" during the session though...
>
> David J.
>
>
>
>
>

Reply via email to