Hi

On Mon, 17 Mar 2025 at 09:11, Aditya Toshniwal <
aditya.toshni...@enterprisedb.com> wrote:

> Hi Dave,
>
> Essentially, the permissions can be based on the menus:
>
> Object Explorer
>
>    1. Manage Server Create/Edit/Remove.
>    2. Create database object (user could still be able to create using
>    query tool)
>
> Definitely not the second one. We shouldn't do anything that is enforced
in the database server - it's unlikely the two permissions systems will
remain in sync for more than a few minutes, and we shouldn't be duplicating
server functionality anyway.


> Tools
>
>    1. Tool access like query tool, backup, etc.
>
> Storage Manager:
>
>    1. Create/Edit/Delete file.
>    2. Create/Edit/Delete folders.
>
>
> On Thu, Mar 13, 2025 at 8:47 PM Aditya Toshniwal <
> aditya.toshni...@enterprisedb.com> wrote:
>
>>
>>
>> On Thu, Mar 13, 2025 at 7:25 PM Dave Page <dp...@pgadmin.org> wrote:
>>
>>>
>>>
>>> On Thu, 13 Mar 2025 at 13:19, Aditya Toshniwal <
>>> aditya.toshni...@enterprisedb.com> wrote:
>>>
>>>>
>>>>
>>>> On Thu, Mar 13, 2025 at 4:54 PM Dave Page <dp...@pgadmin.org> wrote:
>>>>
>>>>>
>>>>>
>>>>> On Thu, 13 Mar 2025 at 11:07, Aditya Toshniwal <
>>>>> aditya.toshni...@enterprisedb.com> wrote:
>>>>>
>>>>>> Hi Dave,
>>>>>>
>>>>>> On Thu, Mar 13, 2025 at 4:27 PM Dave Page <dp...@pgadmin.org> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Thu, 13 Mar 2025 at 10:26, Aditya Toshniwal <
>>>>>>> aditya.toshni...@enterprisedb.com> wrote:
>>>>>>>
>>>>>>>> Hi Dave,
>>>>>>>>
>>>>>>>> On Thu, Mar 13, 2025 at 3:36 PM Dave Page <dp...@pgadmin.org>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> Hi
>>>>>>>>>
>>>>>>>>> On Thu, 13 Mar 2025 at 06:16, Aditya Toshniwal <
>>>>>>>>> aditya.toshni...@enterprisedb.com> wrote:
>>>>>>>>>
>>>>>>>>>> Hi Hackers,
>>>>>>>>>>
>>>>>>>>>> I have started looking into a feature where users have requested
>>>>>>>>>> for custom roles. The roles can then be assigned permissions. Here's 
>>>>>>>>>> what I
>>>>>>>>>> think how it can be done:
>>>>>>>>>>
>>>>>>>>>>    1. Create a framework for roles based access control.
>>>>>>>>>>    2. Allow adding/editing/deleting roles from UI.
>>>>>>>>>>    3. User management dialog can be converted to a tab to get
>>>>>>>>>>    extra space for other stuff.
>>>>>>>>>>    4. pgAdmin can have some predefined permissions. The
>>>>>>>>>>    permissions can then be used to validate at the API levels and UI.
>>>>>>>>>>    5. New permissions cannot be added from UI as it will require
>>>>>>>>>>    code changes. They can be added based on user requests.
>>>>>>>>>>    6. Admin can allow these permissions to the roles and roles
>>>>>>>>>>    can be assigned to users.
>>>>>>>>>>    7. Permissions will be used to
>>>>>>>>>>    8. Admin role remains static with no changes allowed.
>>>>>>>>>>
>>>>>>>>>> Let me know your thoughts on this. If everything looks good then
>>>>>>>>>> I will proceed.
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> What permissions would we support initially?
>>>>>>>>>
>>>>>>>>
>>>>>>>> Based on https://github.com/pgadmin-org/pgadmin4/issues/7310, we
>>>>>>>> can start with not allowing users to register a server. We'll start 1 
>>>>>>>> or 2
>>>>>>>> may be, the intention is to create a framework which will allow us to 
>>>>>>>> keep
>>>>>>>> adding permissions on future requests.
>>>>>>>>
>>>>>>>
>>>>>>> The reason I ask is that there's no point in creating a framework if
>>>>>>> we just end up with a single permission for adding/removing servers. I
>>>>>>> think it makes sense to be sure there are likely to be other permissions
>>>>>>> before committing to something likely to be a lot more complex than just
>>>>>>> adding an attribute to a user.
>>>>>>>
>>>>>>
>>>>>> I understand, but there have been many user requests for custom
>>>>>> roles. I agree that adding a complex thing like RBAC just for one single
>>>>>> permission is an overkill. But based on my past experience - users will
>>>>>> come up with more permissions once they see that they can tweak the
>>>>>> permissions now.
>>>>>> What do you suggest we can do?
>>>>>>
>>>>>
>>>>> I do agree, there is the possibility for additional roles to come up,
>>>>> however, I'm struggling to think what makes sense right now. RBAC access 
>>>>> to
>>>>> tools like psql or the Query Tool don't make much sense - if you can login
>>>>> to the database server, then there's nothing to stop you just running psql
>>>>> anyway and bypassing any RBAC we might implement. I suppose there might be
>>>>> an argument that pgAdmin is being used as a "gateway" to a server on an
>>>>> otherwise inaccessible network, but then I worry that that opens a whole
>>>>> other can of worms around locking down ways for users to execute queries
>>>>> through pgAdmin that we might never have previously considered to be a
>>>>> problem.
>>>>>
>>>>> You say there have been many user requests for custom roles. What
>>>>> roles were they asking for?
>>>>>
>>>> Roles similar to what Grafana provides
>>>> https://grafana.com/docs/grafana/latest/administration/roles-and-permissions/,
>>>> but majorly restrictions around server nodes.
>>>>
>>>
>>> Many of those aren't relevant to pgAdmin, but one that did stand out is
>>> the ability to create/delete folders. That might well be useful to control.
>>>
>>
>> So we have 2-3 now. Let me dig in all the modules if I can find more
>> useful permissions.
>>
>>>
>>> --
>>> Dave Page
>>> pgAdmin: https://www.pgadmin.org
>>> PostgreSQL: https://www.postgresql.org
>>> pgEdge: https://www.pgedge.com
>>>
>>>
>>
>> --
>> Thanks,
>> Aditya Toshniwal
>> pgAdmin Hacker | Sr. Staff SDE II | *enterprisedb.com*
>> <https://www.enterprisedb.com/>
>> "Don't Complain about Heat, Plant a TREE"
>>
>
>
> --
> Thanks,
> Aditya Toshniwal
> pgAdmin Hacker | Sr. Staff SDE II | *enterprisedb.com*
> <https://www.enterprisedb.com/>
> "Don't Complain about Heat, Plant a TREE"
>


-- 
Dave Page
pgAdmin: https://www.pgadmin.org
PostgreSQL: https://www.postgresql.org
pgEdge: https://www.pgedge.com

Reply via email to