> On Dec 15, 2021, at 10:02 AM, Joshua Brindle <joshua.brin...@crunchydata.com> 
> wrote:
> 
> Ah, I was actually requesting a hook where the acl check was done for
> setting a GUC, such that we could deny setting them in a hook,
> something that would be useful for the set_user extension
> (github.com/pgaudit/set_user)

Hmm, this seems orthogonal to the patch under discussion.  This patch only adds 
a pg_setting_acl_aclcheck in ExecSetVariableStmt() for settings which have been 
explicitly granted, otherwise it works the traditional way (checking whether 
the setting is suset/userset).  I don't think you'd get MAC support without 
finding a way to fire the hook for all settings, regardless of their presence 
in the new pg_setting_acl table.  That is hard, because 
InvokeObjectPostAlterHook expects the classId (SettingAclRelationId) and the 
objectId (pg_setting_acl.oid), but you don't have those for many (most?) 
settings.  As discussed upthread, we *do not* want to force an entry into the 
table for all settings, only for ones that have been explicitly granted.

Do you agree?  I'm happy to support MAC in this patch if can explain a simple 
way of doing so.

> but having a hook for grant/revoke is
> also helpful.

Yes, I see no reason to rip this out.

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





Reply via email to