Re: Role Self-Administration

From: Mark Dilger <mark(dot)dilger(at)enterprisedb(dot)com>
To: Stephen Frost <sfrost(at)snowman(dot)net>
Cc: Robert Haas <robertmhaas(at)gmail(dot)com>, Andrew Dunstan <andrew(at)dunslane(dot)net>, PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: Re: Role Self-Administration
Date: 2021-10-07 19:12:27
Message-ID: BF7FC362-6BCC-401C-9737-74415862A5DE@enterprisedb.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> On Oct 7, 2021, at 11:30 AM, Stephen Frost <sfrost(at)snowman(dot)net> wrote:
>
>> Because we've already decided how object ownership works. I didn't write any code to have roles get dropped when their owners get dropped. I just put ownership into the system and this is how it naturally works. So you are advocating that DROP...CASCADE works one way for every object type save one. I think that's an incredibly unclean design. Having DROP...CASCADE work the same way for all ownership relations for all object types without exception makes so much more sense to me.
>
> We've decided how object ownership works related to DROP ROLE ...
> CASCADE..? I don't follow how that is the case. What we *do* have is
> dependency handling, but that isn't the same as ownership.

We have a concept of objects being owned, and we prohibit the owner being NULL. You've already said upthread that DROP ROLE bob CASCADE must revoke "bob" from other roles, must remove "bob", and must not fail. How do you handle this?

CREATE ROLE bob;
GRANT CREATE ON DATABASE regression TO bob;
SET SESSION AUTHORIZATION bob;
CREATE SCHEMA bobs_schema;
RESET SESSION AUTHORIZATION;
DROP ROLE bob CASCADE;

You can't have bobs_schema have a null owner, nor can you refuse to drop bob. Do you just decide that the role dropping "bob" automatically become the new owner of bobs_schema? Do you assign it to the database owner? What do you do? And whatever you say we should do, how is that more spec compliant than what I propose we do? I would expect the argument against X performing X+Y would cut against anything you suggest as much as it cuts against what I suggest.


Mark Dilger
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Tom Lane 2021-10-07 19:15:22 Re: dfmgr additional ABI version fields
Previous Message Robert Haas 2021-10-07 19:12:07 Re: storing an explicit nonce