Hi,

> if (acl in pg_database == NULL)
>       acl = acldefault
> else
>       acl = acl in pg_database
> if (has_permission(acl, user, ACL_CONNECT))
>       can connect
> else
>       can't connect
> 
> 
> To revoke a privilege you do this:
> 
> if (acl in pg_datbase == NULL)
>       acl = acldefault
> else
>       acl = acl in pg_database
> newacl = revoke_privilege_from(acl)
> store newacl in pg_database

Perfect, I see it now :) My error was to actually add the "acldefault"
when the acl was null. 

> 
> > Personally I think it would be better for the database owner not have
> > the option to REVOKE himself from the CONNECTION privilege of his own
> > database. 
> 
> Why?  A table owner can revoke privileges from himself.

Of course a TABLE owner can revoke privileges from himself. But why
would a DATABASE owner want to lock himself out from CONNECTING to his
database. Perhaps there is a legitimate reason for this but it doesn't
make sense. Right? I see it this way: Why should I lockout myself from
my own house and throw the keys away. (I am a man of simple words and
examples, I must apologize.)

> I understand your point, but we give a lot of privileges by default (I
> think we give CREATE on the PUBLIC schema, for example).  You can
> propose to change that behavior, but I feel that's a different
> discussion than what you are working on ATM.
> 

Agreed.


---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match

Reply via email to