PostgreSQL。函数修改表的独占权限

PostgreSQL。函数修改表的独占权限,postgresql,triggers,permissions,Postgresql,Triggers,Permissions,在PostgreSQL中是否可以授予函数修改表的独占权限? 例如,触发器是否可能知道哪个函数访问了具有修改或插入意图的表?您只能通过用户来执行此操作,方法是使用不同于所有其他访问的用户来运行该函数 一个选项是拥有该功能的NOLOGIN角色。现在,如果该函数被声明为安全定义器,它将始终在其所有者的上下文中运行。现在,如果该所有者是唯一有权修改表的角色,那么您就有了解决方案。谢谢,这是一个解决方案。我很可能会用这个。我一直很好奇触发器是否知道哪个函数正在访问它的表。这些信息应该可以通过某种方式获得。

在PostgreSQL中是否可以授予函数修改表的独占权限?
例如,触发器是否可能知道哪个函数访问了具有修改或插入意图的表?

您只能通过用户来执行此操作,方法是使用不同于所有其他访问的用户来运行该函数


一个选项是拥有该功能的
NOLOGIN
角色。现在,如果该函数被声明为
安全定义器
,它将始终在其所有者的上下文中运行。现在,如果该所有者是唯一有权修改表的角色,那么您就有了解决方案。

谢谢,这是一个解决方案。我很可能会用这个。我一直很好奇触发器是否知道哪个函数正在访问它的表。这些信息应该可以通过某种方式获得。有
current\u query
函数,但它只显示顶级查询。您必须用C编写一个触发器来检查当前查询的解析树。