> On Nov 9, 2021, at 7:36 AM, David Christensen 
> <david.christen...@crunchydata.com> wrote:
> 
> If CINE semantics are at issue, what about the CREATE OR REPLACE semantics 
> with some sort of merge into the existing role?  I don't care strongly about 
> which approach is taken, just think the overall "make this role exist in this 
> form" without an error is useful in my own work, and CINE was easier to 
> implement as a first pass.

CREATE OR REPLACE might be a better option, not with the "merge into the 
existing role" part, but rather as drop+create.  If a malicious actor has 
already added other roles to the role, or created a table with a malicious 
trigger definition, the drop part will fail, which is good from a security 
viewpoint.  Of course, the drop portion will also fail under other conditions 
which don't entail any security concerns, but maybe they could be addressed in 
a series of follow-on patches?

I understand this idea is not as useful for creating idempotent scripts, but 
maybe it gets you part of the way there?

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





Reply via email to